結果
問題 | No.161 制限ジャンケン |
ユーザー |
![]() |
提出日時 | 2016-07-20 12:43:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 850 bytes |
コンパイル時間 | 1,337 ms |
コンパイル使用メモリ | 166,916 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 04:53:50 |
合計ジャッジ時間 | 1,968 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h>#define REP(i,n) for(int i = 0; i < (int)(n); ++i)using namespace std;int main() {int G, C, P;cin >> G >> C >> P;string S;cin >> S;int g = 0, c = 0, p = 0;REP(i,S.size()){if (S[i] == 'G') g++;if (S[i] == 'C') c++;if (S[i] == 'P') p++;}int ans = 0;if(P>=g){ans += 3*g;P -= g;g = 0;}else{ans += 3*P;g -= P;P = 0;}if(C>=p){ans += 3*p;C -= p;p = 0;}else{ans += 3*C;p -= C;C = 0;}if(G>=c){ans += 3*c;G -= c;c = 0;}else{ans += 3*G;c -= G;G = 0;}ans += min(g,G);ans += min(c,C);ans += min(p,P);cout << ans << endl;return 0;}