結果
| 問題 | No.594 壊れた宝物発見機 |
| コンテスト | |
| ユーザー |
shisidor
|
| 提出日時 | 2026-05-06 14:04:57 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,474 bytes |
| 記録 | |
| コンパイル時間 | 3,535 ms |
| コンパイル使用メモリ | 332,336 KB |
| 実行使用メモリ | 30,320 KB |
| 平均クエリ数 | 82.50 |
| 最終ジャッジ日時 | 2026-05-06 14:05:06 |
| 合計ジャッジ時間 | 8,167 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 WA * 1 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
int ask(int a, int b, int c1, int c2, int idx) {
int r0, r1;
if (idx == 0) {
cout << "? " << c1 << " " << a << " " << b << endl; cin >> r0;
cout << "? " << c2 << " " << a << " " << b << endl; cin >> r1;
}
if (idx == 1) {
cout << "? " << a << " " << c1 << " " << b << endl; cin >> r0;
cout << "? " << a << " " << c2 << " " << b << endl; cin >> r1;
}
if (idx == 2) {
cout << "? " << a << " " << b << " " << c1 << endl; cin >> r0;
cout << "? " << a << " " << b << " " << c2 << endl; cin >> r1;
}
return (r0 <= r1);
}
int main() {
int x = 0, y = 0, z = 0;
for (int i = 0; i < 3; i++) {
int l = -100, r = 100;
while (r - l >= 3) {
int l1 = (l * 2 + r) / 3, r1 = (l + r * 2) / 3;
int ret;
if (i == 0) ret = ask(y, z, l1, r1, i);
if (i == 1) ret = ask(x, z, l1, r1, i);
if (i == 2) ret = ask(x, y, l1, r1, i);
if (ret) r = r1;
else l = l1;
}
while (l < r) {
int ret;
if (i == 0) ret = ask(y, z, l, r, i);
if (i == 1) ret = ask(x, z, l, r, i);
if (i == 2) ret = ask(x, y, l, r, i);
if (ret) r--;
else l++;
}
if (i == 0) x = l;
if (i == 1) y = l;
if (i == 2) z = l;
}
cout << "! " << x << " " << y << " " << z << endl;
}
shisidor