結果
問題 |
No.253 ロウソクの長さ
|
ユーザー |
![]() |
提出日時 | 2015-07-25 00:19:25 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 777 bytes |
コンパイル時間 | 725 ms |
コンパイル使用メモリ | 78,500 KB |
実行使用メモリ | 25,716 KB |
平均クエリ数 | 29.81 |
最終ジャッジ日時 | 2024-07-16 05:05:38 |
合計ジャッジ時間 | 7,896 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 36 |
ソースコード
#include<iostream> #include<string> #include<algorithm> #include<vector> #include<functional> #include<stack> #include<queue> #include<set> #include<map> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> using namespace std; int ask(int Y){ cout << "? " << Y << endl; int res; cin >> res; return res; } signed main() { int st = 10, ed = 1000000000, medi; int counter = 0; if (ask(50) <= 0) { for (int i = 0; i <= 50; i++) { if (ask(0) == 0) { cout << "! " << i << endl; break; } } return 0; } while (st <= ed) { medi = (st + ed) / 2; int res = ask(medi - counter); if (res == 0) break; if (res == -1) ed = medi - 1; if (res == 1) st = medi + 1; counter++; } cout << "! " << medi << endl; return 0; }