結果

問題 No.253 ロウソクの長さ
ユーザー srup٩(๑`н´๑)۶
提出日時 2016-09-27 21:27:56
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 658 bytes
コンパイル時間 832 ms
コンパイル使用メモリ 65,032 KB
実行使用メモリ 25,604 KB
平均クエリ数 65.11
最終ジャッジ日時 2024-07-16 11:05:52
合計ジャッジ時間 9,195 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 36
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <cstdio>
#include <set>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
const int INF = 1e9;


int ask(int Y){
	cout << "? " << Y << endl;
	int res;
	cin >> res;
	return res;
}

int main(){

	int l = 0; int r = INF + 1;
	rep(i, 50){
		int mid = (l + r) / 2;
		if(ask(mid) == -1){//短い
			r = mid;
		}else if(ask(mid) == 1){//長い
			l = mid - 1;
		}else if(ask(mid) == 0){
			printf("! %d\n", max(0, mid - 1));
			return 0;
		}
	}
	for (int i = l - 10; i <= r; ++i){
		if(ask(i) == 0){
			printf("! %d\n", max(0, i - 1));
			return 0;
		}
	}

	return 0;
}
0