Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
1A , 贴代码!#include<stdio.h> #include<string.h> #include<ctype.h> #include<math.h> #include<algorithm> using namespace std; char st[40] , chess[10][40] ; int a[9][9] ; struct white { char ch , row , col; int pow ; }wh[100]; struct black { char ch , row , col ; int pow ; }bl[100]; bool cmp2 (white a , white b) { if (a.pow < b.pow) return 1 ; if (a.pow > b.pow) return 0 ; if (a.pow == b.pow ) { if (a.row == b.row) return a.col < b.col ; else return a.row < b.row ; } } bool cmp1 (black a , black b) { if (a.pow < b.pow) return 1 ; if (a.pow > b.pow) return 0 ; if (a.pow == b.pow ) { if (a.row == b.row) return a.col < b.col ; else return a.row > b.row ; } } int main () { // freopen ("a.txt" , "r" , stdin) ; for (int i = 1 ; i <= 17 ; i++) { if (i & 1) gets (st) ; else gets (chess[i / 2]) ; } int k , f; for (int i = 1 ; i <= 8 ; i++) { k = 1 ; for (int j = 2 ; j < 33 ; j += 4 , k++) { switch ( chess[i][j] ) { case 'k' : a[i][k] = 1 ; break ; case 'q' : a[i][k] = 2 ; break ; case 'r' : a[i][k] = 3 ; break ; case 'b' : a[i][k] = 4 ; break ; case 'n' : a[i][k] = 5 ; break ; case 'p' : a[i][k] = 6 ; break ; case 'K' : a[i][k] = -1 ; break ; case 'Q' : a[i][k] = -2 ; break ; case 'R' : a[i][k] = -3 ; break ; case 'B' : a[i][k] = -4 ; break ; case 'N' : a[i][k] = -5 ; break ; case 'P' : a[i][k] = -6 ; break ; case ':' : a[i][k] = 0 ; break ; case '.' : a[i][k] = 0 ; break ; default : break ; } } } /* for (int i = 1 ; i <= 8 ; i++) { for (int j = 1 ; j <= 8 ; j++) { printf ("%d\t" , a[i][j]) ; } puts ("") ; }*/ k = 0 , f = 0 ; for (int i = 1 ; i <= 8 ; i++) { for (int j = 1 ; j <= 8 ; j++) { if (a[i][j] > 0) { bl[k].pow = a[i][j] ; bl[k].row = '0' + 9 - i ; bl[k].col = 'a' + j - 1 ; switch (a[i][j]) { case 1 : bl[k].ch = 'K' ; break ; case 2 : bl[k].ch = 'Q' ; break ; case 3 : bl[k].ch = 'R' ; break ; case 4 : bl[k].ch = 'B' ; break ; case 5 : bl[k].ch = 'N' ; break ; default : break ; } k++ ; } if (a[i][j] < 0) { wh[f].pow = -a[i][j] ; wh[f].row = '0' + 9 - i ; wh[f].col = 'a' + j - 1 ; switch (-a[i][j]) { case 1 : wh[f].ch = 'K' ; break ; case 2 : wh[f].ch = 'Q' ; break ; case 3 : wh[f].ch = 'R' ; break ; case 4 : wh[f].ch = 'B' ; break ; case 5 : wh[f].ch = 'N' ; break ; default : break ; } f++ ; } } } sort (bl , bl + k , cmp1) ; sort (wh , wh + f , cmp2) ; printf ("White: ") ; for (int i = 0 ; i < f ; i++) { // printf ("wh[%d].pow = %d\n" , i , wh[i].pow) ; if (wh[i].pow != 6) printf ("%c" , wh[i].ch) ; printf ("%c%c" , wh[i].col , wh[i].row ) ; if (i != f - 1) printf (",") ; } puts ("") ; printf ("Black: ") ; for (int i = 0 ; i < k ; i++) { if (bl[i].pow != 6) printf ("%c" , bl[i].ch) ; printf ("%c%c" , bl[i].col , bl[i].row ) ; if (i != k - 1) printf (",") ; } puts ("") ; return 0 ; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator