QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#667340#9484. Colored Complete GraphwallcrackWA 1ms3588kbC++20968b2024-10-22 22:17:172024-10-22 22:17:27

Judging History

你现在查看的是最新测评结果

  • [2024-10-22 22:17:27]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3588kb
  • [2024-10-22 22:17:17]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int query(int u,int v)
{
	cout<<endl;
	cout<<"? "<<u<<" "<<v<<endl;
	char res;
	cin>>res;
	return res=='R';
}
void answer(vector<pair<int,int>> &edge)
{
	cout<<"!"<<endl;
	for(auto [u,v]:edge)
		cout<<u<<" "<<v<<endl;
}
int main()
{
	int n;
	cin>>n;
	vector<pair<int,int>> blueEdge,redEdge;
	vector<int>bluePoint,redPoint;
	for(int i=2;i<=n;i++)
	{
		int res=query(1,i);
		if(res)
		{
			redEdge.push_back(make_pair(1,i));
			redPoint.push_back(i);
		}
		else 
		{
			blueEdge.push_back(make_pair(1,i));
			bluePoint.push_back(i);
		}
	}
	for(int i=0,j=0;i<redPoint.size() and j<bluePoint.size();)
	{
		int u=redPoint[i],v=bluePoint[j];
		int res=query(u,v);
		if(res)
		{
			redEdge.push_back(make_pair(u,v));
			j++;
		}
		else 
		{
			blueEdge.push_back(make_pair(u,v));
			i++;
		}
	}
	if(blueEdge.size()>=n-1)answer(blueEdge);
	else answer(redEdge);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 3588kb

input:

3

output:


? 1 2

result:

wrong answer invalid question