結果
問題 | No.133 カードゲーム |
ユーザー | itezpace |
提出日時 | 2016-09-20 07:39:29 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,042 bytes |
コンパイル時間 | 514 ms |
コンパイル使用メモリ | 63,968 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-25 03:44:17 |
合計ジャッジ時間 | 1,309 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ int N,A,B; cin>>N; vector<int> va; for(int i=0; i<N; ++i){ cin>>A; va.push_back(A); } vector<int> vb; for(int i=0; i<N; ++i){ cin>>B; vb.push_back(B); } vector<int> vi1; for(int i=0; i<N; ++i){ vi1.push_back(i); } vector<int> vi2; for(int i=0; i<N; ++i){ vi2.push_back(i); } double wa=0,wb=0,dr=0; do{ do{ double wa2=0,wb2=0,dr2=0; for(int i=0; i<N; ++i){ int ind1=vi1[i]; int ind2=vi2[i]; if(va[ind1]>vb[ind2]){ wa2+=1; } else if(va[ind1]<vb[ind2]){ wb2+=1; } else if(va[ind1]==vb[ind2]){ dr2+=1; } } if(wa2>wb2){ wa+=1; } else if(wa2<wb2){ wb+=1; } else if(wa2==wb2){ dr+=1; } } while(next_permutation(vi2.begin(),vi2.end())); } while(next_permutation(vi1.begin(),vi1.end())); double ans=wa/(wa+wb+dr); cout<<ans<<endl; return 0; }