結果
問題 | No.253 ロウソクの長さ |
ユーザー |
![]() |
提出日時 | 2015-07-25 00:26:33 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 24 ms / 2,000 ms |
コード長 | 785 bytes |
コンパイル時間 | 730 ms |
コンパイル使用メモリ | 79,124 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 30.08 |
最終ジャッジ日時 | 2024-07-16 20:50:20 |
合計ジャッジ時間 | 3,374 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 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 = 50, ed = 1000000000, medi;int counter = 0;if (ask(50) <= 0) {for (int i = 0; i <= 50; i++) {if (ask(0) == 0) {cout << "! " << i + 1 << 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 + 1 << endl;return 0;}