結果
問題 | No.133 カードゲーム |
ユーザー |
![]() |
提出日時 | 2019-03-25 12:17:17 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 5,000 ms |
コード長 | 1,246 bytes |
コンパイル時間 | 895 ms |
コンパイル使用メモリ | 86,056 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-07 18:08:42 |
合計ジャッジ時間 | 1,823 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <string>#include <sstream>#include <complex>#include <vector>#include <list>#include <queue>#include <deque>#include <stack>#include <map>#include <set>using namespace std;typedef long long int ll;#define EPS (1e-7)#define INF (1e9)#define PI (acos(-1))const int MAX_N = 10010, MAX_W = 10010, MAX_V = 10010;int N;int A[10], B[10];int win = 0, lose = 0;//nは繰り返した回数void dfs(int n,int win1, vector<int> v){//全部終わらせたとき勝ってたらif (n == N){if (win1 > n - win1){win++;}else{lose++;}return;}for (int i = 0; i < N; i++){bool hantei = false;//if 記憶してある番号だったら飛ばすfor (int j = 0; j < v.size(); j++){if (v[j] == i) hantei = true;}if (hantei) continue;int tmp = win1;if (A[n] > B[i]) tmp++;vector<int> vtmp1 = v;vtmp1.push_back(i);dfs(n + 1, tmp, vtmp1);}}int main(){cin >> N;for (int i = 0; i < N; i++){cin >> A[i];}for (int i = 0; i < N; i++){cin >> B[i];}vector<int> vtmp;dfs(0, 0, vtmp);cout << float(win) / (win + lose) << endl;}