結果
| 問題 | No.173 カードゲーム(Medium) |
| コンテスト | |
| ユーザー |
ei1333333
|
| 提出日時 | 2019-02-05 22:09:15 |
| 言語 | C++17 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 2,932 ms / 3,000 ms |
| コード長 | 1,689 bytes |
| 記録 | |
| コンパイル時間 | 2,036 ms |
| コンパイル使用メモリ | 216,488 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-06-07 06:36:29 |
| 合計ジャッジ時間 | 40,471 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:69:7: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized]
69 | if(p > q) latte += p + q;
| ^~
main.cpp:26:11: note: 'p' was declared here
26 | int p, q;
| ^
main.cpp:69:7: warning: 'q' may be used uninitialized [-Wmaybe-uninitialized]
69 | if(p > q) latte += p + q;
| ^~
main.cpp:26:14: note: 'q' was declared here
26 | int p, q;
| ^
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
auto start = clock();
int N, A[20], B[20];
double X, Y;
cin >> N >> X >> Y;
for(int i = 0; i < N; i++) cin >> A[i];
for(int i = 0; i < N; i++) cin >> B[i];
sort(A, A + N);
sort(B, B + N);
random_device rnd;
mt19937 mt(rnd());
uniform_real_distribution<> gen(0, 1);
int win = 0, times = 0;
while(clock() - start < 2.9 * CLOCKS_PER_SEC) {
++times;
bool used1[20] = {}, used2[20] = {};
int latte = 0, malta = 0;
for(int i = 0; i < N; i++) {
int p, q;
auto x = gen(mt);
if(x <= X) {
for(int j = 0; j < N; j++) {
if(used1[j]) continue;
used1[j] = true;
p = A[j];
break;
}
} else {
int y = (int) (gen(mt) * (N - i - 1)) + (i + 1 != N);
for(int j = 0; j < N; j++) {
if(used1[j]) continue;
if(y == 0) {
used1[j] = true;
p = A[j];
break;
}
--y;
}
}
x = gen(mt);
if(x <= Y) {
for(int j = 0; j < N; j++) {
if(used2[j]) continue;
used2[j] = true;
q = B[j];
break;
}
} else {
int y = (int) (gen(mt) * (N - i - 1)) + (i + 1 != N);
for(int j = 0; j < N; j++) {
if(used2[j]) continue;
if(y == 0) {
used2[j] = true;
q = B[j];
break;
}
--y;
}
}
if(p > q) latte += p + q;
if(q > p) malta += p + q;
}
if(latte > malta) {
++win;
}
}
cout << fixed << setprecision(5) << 1.0 * win / times << endl;
}
ei1333333