結果

問題 No.2753 鳩の巣原理
ユーザー anonymously
提出日時 2024-05-10 22:57:55
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 41 ms / 2,000 ms
コード長 695 bytes
コンパイル時間 2,208 ms
コンパイル使用メモリ 195,992 KB
最終ジャッジ日時 2025-02-21 13:07:48
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main(void){
	int N;
	cin >> N;
	vector<int> pigeon(N+2,-1);
	int a=0;
	int z=N+1;
	int left=0;
	int right=N+1;
	pigeon[left]=0;
	pigeon[right]=N;
	for(int i=0;i<10;i++){
		int mid=(left+right)/2;
		int mid2=pigeon[left]+pigeon[right];
		if(mid<1)mid=1;
		if(mid>N)mid=N;
		cout << "? " << mid << endl;
		cin >> pigeon[mid];
		if(z-a!=1){
			if(pigeon[mid-1]==pigeon[mid]){
				a=mid-1;
				z=mid;
			}else if(pigeon[mid]==pigeon[mid+1]){
				a=mid;
				z=mid+1;
			}
		}
		if(pigeon[mid]*2<mid2){
			right=mid;
		}else{
			left=mid;
		}
	}
	if(z-a==1){
		cout << "Yes " << a << ' ' << z << endl;
	}else{
		cout << "No" << endl;
	}

	return 0;
}
0