Submission #1171186

#TimeUsernameProblemLanguageResultExecution timeMemory
1171186SmuggingSpunChameleon's Love (JOI20_chameleon)C++20
20 / 100
1 ms416 KiB
#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]){ if(pp[i].size() < 3){ return; } 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].size() < 2){ return; } if(candidate[j][0] == i || candidate[j][1] == i){ Answer(i, j); vis[i] = vis[j] = true; break; } } } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...