結果
| 問題 |
No.2502 Optimization in the Dark
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-01-12 15:33:04 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,349 bytes |
| コンパイル時間 | 495 ms |
| コンパイル使用メモリ | 69,060 KB |
| 最終ジャッジ日時 | 2025-02-10 01:50:15 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 WA * 17 |
ソースコード
#include <cassert>
#include <iostream>
bool query(int i, int x, int j, int y) {
std::cout << "? " << i << ' ' << x << ' ' << j << ' ' << y << '\n', std::cout.flush();
std::string response;
std::cin >> response;
if (response == "Yes") {
return true;
} else if (response == "No") {
return false;
} else {
assert(false);
}
}
void output_answer(int n, int i1, int j1, int i2, int j2, int i3, int j3) {
std::cout << "!";
for (int i = 0; i < n; ++i) std::cout << ' ' << i1 << ' ' << j1;
for (int i = 0; i < n; ++i) std::cout << ' ' << i2 << ' ' << j2;
for (int i = 0; i < n; ++i) std::cout << ' ' << i3 << ' ' << j3;
std::cout.flush();
}
int main() {
int n;
std::cin >> n;
int i3, j3, i2, j2, i1, j1;
bool q1 = query(2, 2 * n, 3, 2 * n);
if (q1) {
bool q2 = query(1, 2 * n, 3, 2 * n);
if (q2) {
i3 = 1, j3 = 1;
} else {
i3 = 2, j3 = 3;
}
} else {
bool q2 = query(1, 2 * n, 2, 2 * n);
if (q2) {
i3 = 1, j3 = 3;
} else {
i3 = 2, j3 = 3;
}
}
i2 = i3 ^ j3;
bool q3 = query(i3, n, j3, n);
if (q3) {
j2 = i3;
} else {
j2 = j3;
}
i1 = i2, j1 = j2 ^ i3 ^ j3;
output_answer(n, i1, j1, i2, j2, i3, j3);
}