結果

問題 No.161 制限ジャンケン
ユーザー mannshi222jpmannshi222jp
提出日時 2022-02-12 11:03:47
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 1 ms / 5,000 ms
コード長 1,599 bytes
コンパイル時間 1,789 ms
コンパイル使用メモリ 27,760 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-09-10 22:00:38
合計ジャッジ時間 3,089 ms
ジャッジサーバーID
(参考情報)
judge13 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 0 ms
4,376 KB
testcase_01 AC 1 ms
4,380 KB
testcase_02 AC 1 ms
4,380 KB
testcase_03 AC 1 ms
4,380 KB
testcase_04 AC 1 ms
4,380 KB
testcase_05 AC 1 ms
4,376 KB
testcase_06 AC 0 ms
4,380 KB
testcase_07 AC 0 ms
4,380 KB
testcase_08 AC 1 ms
4,376 KB
testcase_09 AC 1 ms
4,376 KB
testcase_10 AC 0 ms
4,376 KB
testcase_11 AC 1 ms
4,376 KB
testcase_12 AC 0 ms
4,376 KB
testcase_13 AC 1 ms
4,380 KB
testcase_14 AC 0 ms
4,380 KB
testcase_15 AC 1 ms
4,380 KB
testcase_16 AC 1 ms
4,380 KB
testcase_17 AC 1 ms
4,380 KB
testcase_18 AC 0 ms
4,380 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>

enum GCP {
        G,
        C,
        P
};

int mGCP[3];
int eGCP[3];
int w[3];
int d[3];

char S[500];

int main()
{
        int sum = 0;
        scanf( "%d %d %d\n", mGCP+G, mGCP+C, mGCP+P );
        scanf( "%s\n", S );
        for( int i; S[i] != '\0'; i++ ) {
                switch( S[i] ) {
                case 'G':
                        eGCP[G]++;
                        break;
                case 'C':
                        eGCP[C]++;
                        break;
                case 'P':
                        eGCP[P]++;
                        break;
                default:
                        break;
                }
        }

#ifdef DEBUG
        printf("mGCP %d %d %d\n", mGCP[G], mGCP[C], mGCP[P] );
        printf("eGCP %d %d %d\n", eGCP[G], eGCP[C], eGCP[P] );
#endif

        w[G] = mGCP[G] > eGCP[C] ? eGCP[C] : mGCP[G];
        w[C] = mGCP[C] > eGCP[P] ? eGCP[P] : mGCP[C];
        w[P] = mGCP[P] > eGCP[G] ? eGCP[G] : mGCP[P];
        sum += w[G]*3;
        sum += w[C]*3;
        sum += w[P]*3;
        mGCP[G] -= w[G]; mGCP[C] -= w[C]; mGCP[P] -= w[P];
        eGCP[G] -= w[P]; eGCP[P] -= w[C]; eGCP[C] -= w[G];
#ifdef DEBUG
        printf("w %d %d %d\n", w[G], w[C], w[P] );
#endif


        d[G] = mGCP[G] > eGCP[G] ? eGCP[G] : mGCP[G];
        d[C] = mGCP[C] > eGCP[C] ? eGCP[C] : mGCP[C];
        d[P] = mGCP[P] > eGCP[P] ? eGCP[P] : mGCP[P];
        sum += d[G];
        sum += d[C];
        sum += d[P];

#ifdef DEBUG
        printf("d %d %d %d\n", d[G], d[C], d[P] );
#endif

        printf("%d\n", sum );


        return 0;
}
0