結果
問題 | No.161 制限ジャンケン |
ユーザー |
|
提出日時 | 2016-02-11 19:38:11 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 867 bytes |
コンパイル時間 | 1,143 ms |
コンパイル使用メモリ | 158,584 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 04:49:32 |
合計ジャッジ時間 | 1,947 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define rep(i,n) for(i=0;i<n;++i)#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)#define mp make_pair#define pb push_back#define fi first#define sc secondint main(int argc, char const *argv[]) {int i;int g,c,p;string s;cin >>g >>c >>p >>s;int x=0,y=0,z=0;rep(i,s.size()){if(s[i]=='G') ++x;else if(s[i]=='C') ++y;else ++z;}//printf("%d %d %d\n",x,y,z);int ans=0;//勝ち優先int t=min(g,y);g-=t;y-=t;ans+=t*3;t=min(c,z);ans+=t*3;c-=t;z-=t;t=min(p,x);ans+=t*3;p-=t;x-=t;//残りで極力引き分けt=min(g,x);g-=t;x-=t;ans+=t;t=min(c,y);c-=t;y-=t;ans+=t;t=min(p,z);p-=t;z-=t;ans+=t;std::cout << ans << std::endl;return 0;}