QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#667334 | #9484. Colored Complete Graph | wallcrack | WA | 0ms | 3596kb | C++20 | 960b | 2024-10-22 22:15:27 | 2024-10-22 22:15:35 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int query(int u,int v)
{
cout<<"? "<<u<<" "<<v<<endl<<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: 0ms
memory: 3596kb
input:
3 B
output:
? 1 2 ? 1 3
result:
wrong answer invalid question