結果
問題 |
No.594 壊れた宝物発見機
|
ユーザー |
![]() |
提出日時 | 2019-01-09 23:32:46 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 138 ms / 2,000 ms |
コード長 | 910 bytes |
コンパイル時間 | 261 ms |
コンパイル使用メモリ | 28,032 KB |
最終ジャッジ日時 | 2025-01-06 20:13:44 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
コンパイルメッセージ
main.cpp: In function ‘int inquiry(int, int, int)’: main.cpp:7:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 7 | scanf("%d", &d); | ~~~~~^~~~~~~~~~
ソースコード
#include <cstdio> int inquiry(int x, int y, int z) { printf("? %d %d %d\n", x, y, z); fflush(stdout); int d; scanf("%d", &d); return d; } int main() { int X; { int lb = -150; int ub = 151; while (ub-lb > 1) { int mid = (lb+ub) >> 1; int d0 = inquiry(mid, 0, 0); int d1 = inquiry(mid+1, 0, 0); ((d0 > d1)? lb:ub) = mid; } X = ub; } int Y; { int lb = -150; int ub = 151; while (ub-lb > 1) { int mid = (lb+ub) >> 1; int d0 = inquiry(X, mid, 0); int d1 = inquiry(X, mid+1, 0); ((d0 > d1)? lb:ub) = mid; } Y = ub; } int Z; { int lb = -150; int ub = 151; while (ub-lb > 1) { int mid = (lb+ub) >> 1; int d0 = inquiry(X, Y, mid); int d1 = inquiry(X, Y, mid+1); ((d0 > d1)? lb:ub) = mid; } Z = ub; } printf("! %d %d %d\n", X, Y, Z); fflush(stdout); }