QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#764043 | #9484. Colored Complete Graph | QingTian | WA | 1ms | 3616kb | C++20 | 1.4kb | 2024-11-19 23:33:34 | 2024-11-19 23:33:35 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int N=2e5+10;
int n;
vector<int> a,b,remainA,remainB;
vector<pii> ar,br;
int sta[N],stb[N];
int query(int u,int v){
cout<<"? "<<u<<' '<<v<<endl;
string s;cin>>s;
return s=="R";
}
void answer(){
if(a.size()==n){
for(auto &[x,y]:ar){
cout<<x<<' '<<y<<endl;
}
}else{
for(auto &[x,y]:br){
cout<<x<<' '<<y<<endl;
}
}
}
int main(){
cin>>n;
a.push_back(1);
b.push_back(1);
sta[1]=1;
stb[1]=1;
for(int i=2;i<=n;i++){
bool res=query(1,i);
if(res){
ar.push_back({1,i});
a.push_back(i);
sta[i]=1;
}else{
br.push_back({1,i});
b.push_back(i);
stb[i]=1;
}
}
for(int i=1;i<=n;i++){
if(!sta[i]) remainA.push_back(i);
if(!stb[i]) remainB.push_back(i);
}
while(a.size()!=n && b.size()!=n){
int a1=remainA.back(),b1=remainB.back();
bool tp=query(a1,b1);
if(tp){
remainA.pop_back();
a.push_back(a1);
ar.push_back({a1,b1});
}else{
remainB.pop_back();
b.push_back(b1);
br.push_back({a1,b1});
}
}
answer();
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3616kb
input:
3 B R B
output:
? 1 2 ? 1 3 ? 2 3 1 2 2 3
result:
wrong answer invalid question