#include "chameleon.h"
#include<bits/stdc++.h>
using namespace std;
void Solve(int n){
if(n <= 50){
vector<vector<int>>pp(n << 1 | 1);
vector<bool>vis(n << 1 | 1, false);
for(int i = 1; i <= (n << 1); i++){
if(!vis[i]){
vector<int>p;
for(int j = 1; j <= (n << 1); j++){
if(i != j){
vector<int>v = {i, j};
if(Query(v) == 1){
p.emplace_back(j);
}
}
}
if(p.size() == 1){
Answer(i, p[0]);
vis[i] = vis[p[0]] = true;
}
else{
pp[i] = p;
}
}
}
vector<vector<int>>candidate(n << 1 | 1);
for(int i = 1; i <= (n << 1); i++){
if(!vis[i]){
vector<vector<int>>v = {{i, pp[i][0], pp[i][1]}, {i, pp[i][0], pp[i][2]}, {i, pp[i][1], pp[i][2]}};
if(Query(v[0]) == 1){
candidate[i] = vector<int>{pp[i][0], pp[i][1]};
}
else if(Query(v[1]) == 1){
candidate[i] = vector<int>{pp[i][0], pp[i][2]};
}
else{
candidate[i] = vector<int>{pp[i][1], pp[i][2]};
}
}
}
for(int i = 1; i <= (n << 1); i++){
if(!vis[i]){
for(int& j : candidate[i]){
if(candidate[j][0] == i || candidate[j][1] == i){
Answer(i, j);
vis[i] = vis[j] = true;
break;
}
}
}
}
}
}
# | 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... |