#include #include typedef struct { int x; int y; int t; int v; } FIG; int fig_val(int t,int x,int y) { int val1; switch (t) { case 'K': val1 = 1*64; break; case 'Q': val1 = 2*64; break; case 'R': val1 = 3*64; break; case 'B': val1 = 4*64; break; case 'N': val1 = 5*64; break; case 'P': val1 = 6*64; break; } val1 += y*8+x; return val1; } void minsort(FIG *p, int n) { int i,j; int max; FIG tmp; for ( i = 0; i p[j].v ) max = j; if (max != i) { tmp = p[max]; p[max] = p[i]; p[i] = tmp; } } } int main() { int pos_w,pos_b,x,y,i; char pol[8][8] = {{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}}; char ch; char temp[256]; FIG white[32]; FIG black[32]; for (y=0;y<8;y++) { scanf("%s\n",temp); for (x=0;x<8;x++) { scanf("%c%c%c%c",&ch,&ch,&pol[x][y],&ch); } scanf("%c\n",temp); } i = 1; pos_w = 0; pos_b = 0; for (x=0;x<8;x++) { for (y=0;y<8;y++) { if (pol[y][x]>='a' && pol[y][x]<='z') { black[pos_b].t = pol[y][x]+'A'-'a'; black[pos_b].x = y; black[pos_b].y = 7-x; black[pos_b].v = fig_val(black[pos_b].t,y,x); pos_b++; } if (pol[y][x]>='A' && pol[y][x]<='Z') { white[pos_w].t = pol[y][x]; white[pos_w].x = y; white[pos_w].y = 7-x; white[pos_w].v = fig_val(white[pos_w].t,y,7-x); pos_w++; } } } minsort(black,pos_b); minsort(white,pos_w); i = 0; printf("White: "); for (;i