結果

問題 No.850 企業コンテスト2位
ユーザー kotatsugame
提出日時 2020-03-11 22:55:09
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 32 ms / 2,000 ms
コード長 721 bytes
コンパイル時間 881 ms
コンパイル使用メモリ 75,632 KB
実行使用メモリ 25,476 KB
平均クエリ数 200.11
最終ジャッジ日時 2024-07-16 20:37:40
合計ジャッジ時間 2,931 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 27
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp:7:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    7 | main()
      | ^~~~

ソースコード

diff #

#include<iostream>
#include<vector>
using namespace std;
vector<pair<int,int> >ask;
int N;
vector<int>now;
main()
{
	cin>>N;
	for(int i=1;i<=N;i++)now.push_back(i);
	while(now.size()>1)
	{
		vector<int>nxt;
		int i=0;
		for(;i+1<now.size();i+=2)
		{
			cout<<"? "<<now[i]<<" "<<now[i+1]<<endl;
			int t;
			cin>>t;
			nxt.push_back(t);
			ask.push_back(make_pair(now[i],now[i+1]));
		}
		if(i<now.size())nxt.push_back(now[i]);
		now=nxt;
	}
	int one=now[0];
	vector<int>ok;
	for(pair<int,int>p:ask)
	{
		if(p.first==one)ok.push_back(p.second);
		else if(p.second==one)ok.push_back(p.first);
	}
	int two=ok[0];
	for(int i=1;i<ok.size();i++)
	{
		cout<<"? "<<two<<" "<<ok[i]<<endl;
		cin>>two;
	}
	cout<<"! "<<two<<endl;
}
0