結果
問題 | No.161 制限ジャンケン |
ユーザー |
![]() |
提出日時 | 2015-10-14 10:09:57 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 721 bytes |
コンパイル時間 | 423 ms |
コンパイル使用メモリ | 59,120 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 04:46:16 |
合計ジャッジ時間 | 1,091 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include <iostream> #include <algorithm> #include <stdlib.h> #include <string> using namespace std; int pow(int m,int n){ if (n==0) n=4; int k=m; for(int i=0;i<n-1;i++){ k=(k*m)%10; } return k; } int main() { int g,c,p; string s; cin>>g>>c>>p; cin>>s; int n=s.length(); int a[4]={0}; for(int i=0;i<n;i++){ if(s[i]=='G') a[0]++; if(s[i]=='C') a[1]++; if(s[i]=='P') a[2]++; } int ans=0; int k=min(g,a[1]); g=g-k; a[1]=a[1]-k; ans=ans+3*k; k=min(c,a[2]); c=c-k; a[2]=a[2]-k; ans=ans+3*k; k=min(p,a[0]); p=p-k; a[0]=a[0]-k; ans=ans+3*k; k=min(g,a[0]); g=g-k; a[0]=a[0]-k; ans=ans+k; k=min(c,a[1]); c=c-k; a[1]=a[1]-k; ans=ans+k; k=min(p,a[2]); p=p-k; a[2]=a[2]-k; ans=ans+k; cout<<ans<<endl; return 0; }