评测记录
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct o{
char f;
int u;
}e[4][20];
int h1 = 0, h2 = 0, h3 = 0, h4 = 0;
bool p[10];
int s, dd;
int h[20]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int a, b, c, d;
int ansa, ansb, ansc, ansd;
signed main(){
while(1){
scanf("%d ", &a);
for(int i = 1; i <= a; i ++ ){
scanf("%c%d ", &e[0][i].f, &e[0][i].u);
if(e[0][i].f == 'H')h1 ++ ;
if(e[0][i].f == 'D')dd = 1;
if(e[0][i].f == 'S')s ++ ;
}
if(h1 == 13 && dd == 1 && s == 2) p[0] = 1;
dd = s = 0;
scanf("%d ", &b);
for(int i = 1; i <= b; i ++ ){
scanf("%c%d ", &e[1][i].f, &e[1][i].u);
if(e[1][i].f == 'H')h2 ++ ;
if(e[1][i].f == 'D')dd = 1;
if(e[1][i].f == 'S')s ++ ;
}
if(h2 == 13 && dd == 1 && s == 2) p[1] = 1;
dd = s = 0;
scanf("%d ", &c);
for(int i = 1; i <= c; i ++ ){
scanf("%c%d ", &e[2][i].f, &e[2][i].u);
if(e[2][i].f == 'H')h3 ++ ;
if(e[2][i].f == 'D')dd = 1;
if(e[2][i].f == 'S')s ++ ;
}
if(h3 == 13 && dd == 1 && s == 2) p[2] = 1;
dd = s = 0;
scanf("%d ", &d);
for(int i = 1; i <= d; i ++ ){
scanf("%c%d ", &e[3][i].f, &e[3][i].u);
if(e[3][i].f == 'H')h4 ++ ;
if(e[3][i].f == 'D')dd = 1;
if(e[3][i].f == 'S')s ++ ;
}
if(h4 == 13 && dd == 1 && s == 2) p[3] = 1;
dd = s = 0;
if(a+b+c+d == 0) break;
if(a == 16){
printf("+1000 0 0 0 \n");
continue;
}
if(b == 16){
printf("0 +1000 0 0 \n");
continue;
}
if(c == 16){
printf("0 0 +1000 0 \n");
continue;
}
if(d == 16){
printf("0 0 0 +1000 \n");
continue;
}
if(h1 != 13 && h2 != 13 && h3 != 13 && h4 != 13){
for(int i = 1; i <= a; i ++ ){
if(e[0][i].f == 'H') ansa += h[e[0][i].u];
if(e[0][i].f == 'S') ansa -= 100;
if(e[0][i].f == 'D') ansa += 100;
}
for(int i = 1; i <= a; i ++ ){
if(e[0][i].f == 'C') {
if(a > 1) ansa *= 2;
else ansa += 50;
}
}
for(int i = 1; i <= b; i ++ ){
if(e[1][i].f == 'H') ansb += h[e[1][i].u];
if(e[1][i].f == 'S') ansb -= 100;
if(e[1][i].f == 'D') ansb += 100;
}
for(int i = 1; i <= b; i ++ ){
if(e[1][i].f == 'C') {
if(b > 1) ansb *= 2;
else ansb += 50;
}
}
for(int i = 1; i <= c; i ++ ){
if(e[2][i].f == 'H') ansc += h[e[2][i].u];
if(e[2][i].f == 'S') ansc -= 100;
if(e[2][i].f == 'D') ansc += 100;
}
for(int i = 1; i <= c; i ++ ){
if(e[2][i].f == 'C') {
if(c > 1) ansc *= 2;
else ansc += 50;
}
}
for(int i = 1; i <= d; i ++ ){
if(e[3][i].f == 'H') ansd += h[e[3][i].u];
if(e[3][i].f == 'S') ansd -= 100;
if(e[3][i].f == 'D') ansd += 100;
}
for(int i = 1; i <= d; i ++ ){
if(e[3][i].f == 'C') {
if(d > 1) ansd *= 2;
else ansd += 50;
}
}
}else{
if(p[0] == 1)ansa += 500;
else{
if(h1 == 13) ansa += 200;
for(int i = 1; i <= a; i ++ ){
if(e[0][i].f == 'S') ansa -= 100;
if(e[0][i].f == 'D') ansa += 100;
if(e[0][i].f == 'C') {
if(a > 1) ansa *= 2;
else ansa += 50;
}
}
}
if(p[1] == 1)ansb += 500;
else{
if(h2 == 13) ansb += 200;
for(int i = 1; i <= b; i ++ ){
if(e[1][i].f == 'S') ansb -= 100;
if(e[1][i].f == 'D') ansb += 100;
if(e[1][i].f == 'C') {
if(b > 1) ansb *= 2;
else ansb += 50;
}
}
}
if(p[2] == 1)ansc += 500;
else{
if(h3 == 13) ansc += 200;
for(int i = 1; i <= c; i ++ ){
if(e[2][i].f == 'S') ansc -= 100;
if(e[2][i].f == 'D') ansc += 100;
if(e[2][i].f == 'C') {
if(c > 1) ansc *= 2;
else ansc += 50;
}
}
}
if(p[3] == 1)ansd += 500;
else{
if(h4 == 13)ansd += 200;
for(int i = 1; i <= d; i ++ ){
if(e[3][i].f == 'S') ansd -= 100;
if(e[3][i].f == 'D') ansd += 100;
if(e[3][i].f == 'C') {
if(d > 1) ansd *= 2;
else ansd += 50;
}
}
}
}
if(ansa > 0)printf("+%d ", ansa);
else printf("%d ", ansa);
if(ansb > 0)printf("+%d ", ansb);
else printf("%d ", ansb);
if(ansc > 0)printf("+%d ", ansc);
else printf("%d ", ansc);
if(ansd > 0)printf("+%d\n", ansd);
else printf("%d\n", ansd);
a = b = c = d = h1 = h2 = h3 = h4 = ansa = ansb = ansc = ansd = p[0] = p[1] = p[2] = p[3] = 0;
}
return 0;
}