因为前面没有维护好后面干脆一直CV了,很丑不好意思。
RE on #7,但是我真的不知道数组哪里开小了。
#include<bits/stdc++.h>
using namespace std;
string sa[50],sb[50],sc[50],sd[50];
int main(){
while (true){
int red[7] = {};
int score[7] = {};
int c10,s12,d11;
int a;cin >> a;
for (int i=1;i<=a;i++){
cin >> sa[i];
if (sa[i][0] == 'H')red[1]++;
if (sa[i] == "C10")c10=1;
else if (sa[i] == "S12")s12=1;
else if (sa[i] == "D11")d11=1;
}
int b;cin >> b;
for (int i=1;i<=b;i++){
cin >> sb[i];
if (sb[i][0] == 'H')red[2]++;
if (sb[i] == "C10")c10=2;
else if (sb[i] == "S12")s12=2;
else if (sb[i] == "D11")d11=2;
}
int c;cin >> c;
for (int i=1;i<=c;i++){
cin >> sc[i];
if (sc[i][0] == 'H')red[3]++;
if (sc[i] == "C10")c10=3;
else if (sc[i] == "S12")s12=3;
else if (sc[i] == "D11")d11=3;
}
int d;cin >> d;
for (int i=1;i<=d;i++){
cin >> sd[i];
if (sd[i][0] == 'H')red[4]++;
if (sd[i] == "C10")c10=4;
else if (sd[i] == "S12")s12=4;
else if (sd[i] == "D11")d11=4;
}
// read
if (!a && !b && !c && !d)break;// break it
int doubles[7] = {0,1,1,1,1};
if (c10 != d11 && c10 != s12 && red[c10] == 0){ //c10
score[c10] = 50;
}else doubles[c10] = 2;
if (red[1]==13||red[2]==13||red[3]==13||red[4]==13){
int gotallred;
if (red[1]==13)gotallred=1;
else if (red[2]==13)gotallred=2;
else if (red[3]==13)gotallred=3;
else if (red[4]==13)gotallred=4;
score[gotallred] += (200 * doubles[gotallred]);
if (s12 == gotallred && d11 == gotallred){
score[gotallred] += (300*doubles[gotallred]);
}else {
for (int i=1;i<=a;i++){
if (sa[i] == "S12")score[1] -= (100*doubles[1]);
else if (sa[i] == "D11")score[1] += (100*doubles[1]);
}for (int i=1;i<=b;i++){
if (sb[i] == "S12")score[2] -= (100*doubles[2]);
else if (sb[i] == "D11")score[2] += (100*doubles[2]);
}for (int i=1;i<=c;i++){
if (sc[i] == "S12")score[3] -= (100*doubles[3]);
else if (sc[i] == "D11")score[3] += (100*doubles[3]);
}for (int i=1;i<=d;i++){
if (sd[i] == "S12")score[4] -= (100*doubles[4]);
else if (sd[i] == "D11")score[4] += (100*doubles[4]);
}
}
}else{
for (int i=1;i<=a;i++){
if (sa[i] == "H1")score[1] -= (50*doubles[1]);
else if (sa[i] == "H2")score[1] -= (2*doubles[1]);
else if (sa[i] == "H3")score[1] -= (3*doubles[1]);
else if (sa[i] == "H4")score[1] -= (4*doubles[1]);
else if (sa[i] == "H5")score[1] -= (5*doubles[1]);
else if (sa[i] == "H6")score[1] -= (6*doubles[1]);
else if (sa[i] == "H7")score[1] -= (7*doubles[1]);
else if (sa[i] == "H8")score[1] -= (8*doubles[1]);
else if (sa[i] == "H9")score[1] -= (9*doubles[1]);
else if (sa[i] == "H10")score[1] -= (10*doubles[1]);
else if (sa[i] == "H11")score[1] -= (20*doubles[1]);
else if (sa[i] == "H12")score[1] -= (30*doubles[1]);
else if (sa[i] == "H13")score[1] -= (40*doubles[1]);
else if (sa[i] == "S12")score[1] -= (100*doubles[1]);
else if (sa[i] == "D11")score[1] += (100*doubles[1]);
}
for (int i=1;i<=b;i++){
if (sb[i] == "H1")score[2] -= (50*doubles[2]);
else if (sb[i] == "H2")score[2] -= (2*doubles[2]);
else if (sb[i] == "H3")score[2] -= (3*doubles[2]);
else if (sb[i] == "H4")score[2] -= (4*doubles[2]);
else if (sb[i] == "H5")score[2] -= (5*doubles[2]);
else if (sb[i] == "H6")score[2] -= (6*doubles[2]);
else if (sb[i] == "H7")score[2] -= (7*doubles[2]);
else if (sb[i] == "H8")score[2] -= (8*doubles[2]);
else if (sb[i] == "H9")score[2] -= (9*doubles[2]);
else if (sb[i] == "H10")score[2] -= (10*doubles[2]);
else if (sb[i] == "H11")score[2] -= (20*doubles[2]);
else if (sb[i] == "H12")score[2] -= (30*doubles[2]);
else if (sb[i] == "H13")score[2] -= (40*doubles[2]);
else if (sb[i] == "S12")score[2] -= (100*doubles[2]);
else if (sb[i] == "D11")score[2] += (100*doubles[2]);
}
for (int i=1;i<=c;i++){
if (sc[i] == "H1")score[3] -= (50*doubles[3]);
else if (sc[i] == "H2")score[3] -= (2*doubles[3]);
else if (sc[i] == "H3")score[3] -= (3*doubles[3]);
else if (sc[i] == "H4")score[3] -= (4*doubles[3]);
else if (sc[i] == "H5")score[3] -= (5*doubles[3]);
else if (sc[i] == "H6")score[3] -= (6*doubles[3]);
else if (sc[i] == "H7")score[3] -= (7*doubles[3]);
else if (sc[i] == "H8")score[3] -= (8*doubles[3]);
else if (sc[i] == "H9")score[3] -= (9*doubles[3]);
else if (sc[i] == "H10")score[3] -= (10*doubles[3]);
else if (sc[i] == "H11")score[3] -= (20*doubles[3]);
else if (sc[i] == "H12")score[3] -= (30*doubles[3]);
else if (sc[i] == "H13")score[3] -= (40*doubles[3]);
else if (sc[i] == "S12")score[3] -= (100*doubles[3]);
else if (sc[i] == "D11")score[3] += (100*doubles[3]);
}
for (int i=1;i<=d;i++){
if (sd[i] == "H1")score[4] -= (50*doubles[4]);
else if (sd[i] == "H2")score[4] -= (2*doubles[4]);
else if (sd[i] == "H3")score[4] -= (3*doubles[4]);
else if (sd[i] == "H4")score[4] -= (4*doubles[4]);
else if (sd[i] == "H5")score[4] -= (5*doubles[4]);
else if (sd[i] == "H6")score[4] -= (6*doubles[4]);
else if (sd[i] == "H7")score[4] -= (7*doubles[4]);
else if (sd[i] == "H8")score[4] -= (8*doubles[4]);
else if (sd[i] == "H9")score[4] -= (9*doubles[4]);
else if (sd[i] == "H10")score[4] -= (10*doubles[4]);
else if (sd[i] == "H11")score[4] -= (20*doubles[4]);
else if (sd[i] == "H12")score[4] -= (30*doubles[4]);
else if (sd[i] == "H13")score[4] -= (40*doubles[4]);
else if (sd[i] == "S12")score[4] -= (100*doubles[4]);
else if (sd[i] == "D11")score[4] += (100*doubles[4]);
}
}
if (score[1] > 0)cout << '+' << score[1] << ' ';
else cout << score[1] << ' ';
if (score[2] > 0)cout << '+' << score[2] << ' ';
else cout << score[2] << ' ';
if (score[3] > 0)cout << '+' << score[3] << ' ';
else cout << score[3] << ' ';
if (score[4] > 0)cout << '+' << score[4] << ' ';
else cout << score[4] << ' ';
cout <<'\n';
}
return 0;
}