Submission #1291729

#TimeUsernameProblemLanguageResultExecution timeMemory
1291729serkanrashidChameleon's Love (JOI20_chameleon)C++17
0 / 100
2 ms332 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 0 0 0 0 1 1 1 1 1 2 3 4 1 2 3 4 6 7 8 5 2 3 4 1 */ int in[MAXN],ou[MAXN]; vector<int> subred(int l, int r) { vector<int>res; for(int i = l; i <= r; i++) res.push_back(i); return res; } int solve1(int i, int l, int r, int mi) { int nach = l-1; int mid; //cout << l << "-" << r << endl; while(l <= r) { mid = (l+r)/2; vector<int>p = subred(n+1,mid); p.push_back(i); if(Query(p) == (mid-nach) + 1 - mi) r = mid-1; else l = mid+1; } //cout << l << endl; return l; } int solve3(int i) { int k1 = solve1(i,n+1,2*n,1); int k2 = solve1(i,n+1,2*n,2); vector<int>p1; for(int i = n+1; i <= 2*n; i++) if(i != k1) p1.push_back(i); p1.push_back(i); //cout << k1 << " " << k2 << endl; if(Query(p1) == p1.size() - 1) return k1; return k2; } void Solve(int N) { n = N; for(int i = 1; i <= n; i++) { vector<int>p = subred(n+1,2*n); p.push_back(i); if(Query(p) == n) { int d = solve1(i,n+1,2*n,1); //cout << i << " - " << d << endl; Answer(i,d); } else { int d = solve3(i); Answer(i,d); //cout << i << " --- " << d << endl; } } }
#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...