#include <iostream>
#include <algorithm>
#include <map>
#include <string>
using namespace std;
struct data {
int r,l;
char ch;
}chessw[65],chessb[65];
string s;
char ch,ch1;
int totw,totb;
map<char,int> ma;
void print1(data chess) {
char ch = chess.ch;
int r = chess.r;
int l = chess.l;
if (ch!='P') printf("%c",ch);
printf("%c%d",l+96,9-r);
}
void print2(data chess) {
char ch = chess.ch;
int r = chess.r;
int l = chess.l;
if (ch!='p') printf("%c",ch-32);
printf("%c%d",l+96,9-r);
}
bool cmp1(data a,data b) {
int p1 = ma[a.ch];
int p2 = ma[b.ch];
if (p1<p2) return true;
else if (p1==p2 && a.r>b.r) return true;
else if (p1==p2 && a.r==b.r && a.l<b.l) return true;
return false;
}
bool cmp2(data a,data b) {
int p1 = ma[a.ch];
int p2 = ma[b.ch];
if (p1<p2) return true;
else if (p1==p2 && a.r<b.r) return true;
else if (p1==p2 && a.r==b.r && a.l<b.l) return true;
return false;
}
int main() {
ma['K'] = ma['k'] = 1;
ma['Q'] = ma['q'] = 2;
ma['R'] = ma['r'] = 3;
ma['B'] = ma['b'] = 4;
ma['N'] = ma['n'] = 5;
ma['P'] = ma['p'] = 6;
totw = totb = 0;
cin >> s;
scanf("%c",&ch);
for (int i=1;i<=8;i++) {
for (int k=1;k<=8;k++) {
for (int j=1;j<=4;j++) {
scanf("%c",&ch);
if (j==3) {
if (ch>=65 && ch<=90) {
totw++;
chessw[totw].ch = ch;
chessw[totw].r = i;
chessw[totw].l = k;
}
else if (ch>=97 && ch<=122) {
totb++;
chessb[totb].ch = ch;
chessb[totb].r = i;
chessb[totb].l = k;
}
}
}
}
scanf("%c%c",&ch1,&ch);
cin >> s;
scanf("%c",&ch);
}
sort(chessw+1,chessw+totw+1,cmp1);
sort(chessb+1,chessb+totb+1,cmp2);
printf("White: ");
for (int i=1;i<totw;i++) {
print1(chessw[i]);
printf(",");
}
print1(chessw[totw]);
printf("\n");
printf("Black: ");
for (int i=1;i<totb;i++) {
print2(chessb[i]);
printf(",");
}
print2(chessb[totb]);
printf("\n");
return 0;
}
poj2996 模拟
最新推荐文章于 2015-08-04 18:15:49 发布