제출 #488198

#제출 시각아이디문제언어결과실행 시간메모리
488198PixelCatMinerals (JOI19_minerals)C++14
100 / 100
38 ms2544 KiB
#include <bits/stdc++.h> #include "minerals.h" using namespace std; #define For(i,a,b) for(int i=a;i<=b;i++) #define eb emplace_back #define all(x) x.begin(),x.end() #define sz(x) ((int)x.size()) bool toggle(int x){ static int last=0; int now=Query(x); bool ans=(now==last); last=now; return ans; } void solve(vector<int> &vl,vector<int> &vr,int l,int r,bool fill){ if(sz(vl)==1){ Answer(vl[0],vr[l]); return; } int n=max(1,sz(vl)/3); int m=sz(vl)-n; For(i,l,l+n-1) toggle(vr[i]); vector<int> vll,vlr; for(auto &i:vl){ if(sz(vll)==n) vlr.eb(i); else if(sz(vlr)==m) vll.eb(i); else{ bool res=toggle(i); if(fill!=res) vll.eb(i); else vlr.eb(i); } } solve(vll,vr,l,l+n-1,!fill); solve(vlr,vr,l+n,r,fill); } void Solve(int32_t n){ vector<int> l,r; For(i,1,n*2){ if(toggle(i)) l.eb(i); else r.eb(i); } random_shuffle(all(r)); solve(l,r,0,n-1,true); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...