Submission #1291756

#TimeUsernameProblemLanguageResultExecution timeMemory
1291756serkanrashidChameleon's Love (JOI20_chameleon)C++17
0 / 100
1 ms432 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) { //cout << "smisli" << endl; int nach = l-1; int mid; //cout << l << "-" << r << endl; while(l <= r) { mid = (l+r)/2; vector<int>p = subred(nach+1,mid); p.push_back(i); if(Query(p) == (mid-nach) + 1 - mi) r = mid-1; else l = mid+1; } return l; } int solve2(int i, int l, int r, int mi) { //cout << "smisli" << endl; int nach = r+1; int mid; //cout << l << "-" << r << endl; while(l <= r) { mid = (l+r)/2; vector<int>p = subred(mid,nach-1); p.push_back(i); if(Query(p) == (nach-mid) + 1 - mi) l = mid+1; else r = mid-1; } return r; } int solve3(int i) { int pr2 = solve1(i,n+1,2*n,2); int sf2 = solve2(i,n+1,2*n,2); if(pr2 == sf2) return pr2; int k1 = pr2; int k2 = sf2; int k3 = solve1(i,n+1,2*n,1); if(k3 == k1 || k3 == k2) k3 = solve2(i,n+1,2*n,1); //cout << k1 << " " << k2 << " " << k3 << "ks" << endl; vector<int>p1 = {i,k2,k3}; if(k3 < 1 || k3 > 2*n) p1.pop_back(); //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 { // cout << "hello" << endl; int d = solve3(i); //cout << i << " --- " << d << endl; Answer(i,d); } } }
#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...