This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "chameleon.h"
#include <bits/stdc++.h>
using namespace std;
int query(vector<int> v) {
for(auto &i: v) i++;
return Query(v);
}
bool qry(vector<int> &v, int x) {
int orig = query(v);
v.push_back(x);
int nw = query(v);
v.pop_back();
return (nw==orig);
}
int loving(int a, int x, int y, int z) {
if(query({a,x,y})==1) return z;
if(query({a,x,z})==1) return y;
return x;
}
vector<int> adj[1005];
void Solve(int N) {
for(int i=0;i<2*N;i++) for(int j=i+1;j<2*N;j++) if(query({i,j})==1) {
adj[i].push_back(j);
adj[j].push_back(i);
}
int love[2*N]; for(int i=0;i<2*N;i++) if(adj[i].size()==3) love[i]=loving(i,adj[i][0],adj[i][1],adj[i][2]);
int pear[2*N]; for(int i=0;i<2*N;i++) {
if(adj[i].size()==1) pear[i] = adj[i][0];
else for(auto j: adj[i]) if(j!=love[i]&&love[j]!=i) pear[i]=j;
}
for(int i=0;i<2*N;i++) if(pear[i]>i) Answer(i+1,pear[i]+1);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |