結果
| 問題 |
No.355 数当てゲーム(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-04-01 22:39:51 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,181 bytes |
| コンパイル時間 | 1,524 ms |
| コンパイル使用メモリ | 169,492 KB |
| 実行使用メモリ | 25,964 KB |
| 平均クエリ数 | 1163.42 |
| 最終ジャッジ日時 | 2024-07-16 08:53:49 |
| 合計ジャッジ時間 | 12,578 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 52 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
void output(vector<int> &v) { for (int i = 0; i < v.size(); i++) printf("%s%d", i ? " " : "", v[i]); printf("\n"); }
pair<int, int> query(vector<int> a) {
for (int i = 0; i < 4; i++) cout << (i ? " " : "") << a[i];
cout << endl;
int x, y;
cin >> x >> y;
return make_pair(x, y);
}
int sum(pair<int, int> p) {
return p.first + p.second;
}
int main() {
int d1 = sum(query({ 0, 1, 2, 3 }));
int d2 = sum(query({ 6, 7, 8, 9 }));
vector<int> e1, e2;
e1.push_back(0);
for (int i = 4; i <= 9; i++) {
e1.push_back(sum(query({ 0, 1, 2, i })) - d1);
}
e2.push_back(0);
for (int i = 0; i <= 5; i++) {
e2.push_back(sum(query({ i, 7, 8, 9 })) - d2);
}
int mx1 = *max_element(e1.begin(), e1.end());
int mx2 = *max_element(e2.begin(), e2.end());
vector<int> cand;
for (int i = 4; i <= 9; i++) {
if (e1[i] == mx1) cand.push_back(i);
}
for (int i = 0; i <= 5; i++) {
if (e2[i] == mx2) cand.push_back(i);
}
sort(cand.begin(), cand.end());
cand.erase(unique(cand.begin(), cand.end()), cand.end());
do {
if (query(cand).first == 4) {
return 0;
}
} while (next_permutation(cand.begin(), cand.end()));
}