Submission #1291603

#TimeUsernameProblemLanguageResultExecution timeMemory
1291603serkanrashidChameleon's Love (JOI20_chameleon)C++17
20 / 100
18 ms448 KiB
#include "chameleon.h" #include <bits/stdc++.h> using namespace std; //int Query(const std::vector<int> &p) //void Answer(int a, int b) const int MAXN = 1024; int n; vector<int>g[MAXN]; bool vis[MAXN]; /* 4 1 0 1 0 0 1 1 0 4 4 1 2 1 2 3 3 4 3 8 7 6 5 2 1 */ int in[MAXN],ou[MAXN]; void Solve(int N) { n = N; for(int i = 1; i <= 2*n; i++) { for(int j = i+1; j <= 2*n; j++) { if(Query({i,j}) == 1) { g[i].push_back(j); g[j].push_back(i); } } } for(int i = 1; i <= 2*n; i++) { if(vis[i]) continue; if(g[i].size() == 1) { if(!vis[i] && !vis[g[i][0]]) Answer(i,g[i][0]); vis[i] = 1; vis[g[i][0]] = 1; continue; } int ab = Query({i,g[i][0],g[i][1]}); int ac = Query({i,g[i][0],g[i][2]}); int bc = Query({i,g[i][1],g[i][2]}); if(ab == ac) in[g[i][0]] = i; if(ab == bc) in[g[i][1]] = i; if(bc == ac) in[g[i][2]] = i; } for(int i = 1; i <= 2*n; i++) ou[in[i]] = i; for(int i = 1; i <= 2*n; i++) { if(vis[i]) continue; for(int j = 0; j < 3; j++) { if(j > g[i].size()-1) break; if(g[i][j] != in[i] && g[i][j] != ou[i]) { if(!vis[i] && !vis[g[i][j]]) Answer(i,g[i][j]); vis[i] = 1; vis[g[i][j]] = 1; 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...