这数组哪里开小了。。。玄关
查看原帖
这数组哪里开小了。。。玄关
1073754
__szh_DNCB__楼主2025/8/4 21:13

因为前面没有维护好后面干脆一直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;
}
2025/8/4 21:13
加载中...