Submission #532918

#TimeUsernameProblemLanguageResultExecution timeMemory
532918Koosha_mvMinerals (JOI19_minerals)C++14
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define dbgv(v) cout<<#v<<" = "; f(i,0,v.size()) cout<<v[i]<<" "; cout<<endl #define dbga(a,x,y) cout<<#a<<" = "; f(i,x,y) cout<<a[i]<<" "; cout<<endl #define erorp(x) cout<<#x<<"={"<<(x.F)<<" , "<<x.S<<"}"<<endl #define eror(x) cout<<#x<<'='<<(x)<<endl #define f_(i,a,b) for(int i=a;i>=b;i--) #define f(i,a,b) for(int i=a;i<b;i++) #define nb(x) __builtin_popcount(x) #define all(v) v.begin(),v.end() #define bit(n,k) (((n)>>(k))&1) #define Add(x,y) x=(x+y)%mod #define maxm(a,b) a=max(a,b) #define minm(a,b) a=min(a,b) #define lst(x) x[x.size()-1] #define sz(x) int(x.size()) #define mp make_pair #define ll long long #define pb push_back #define S second #define F first #include "minerals.h" const int N=2e5+99; int n,last,Q,dft,a[N],s[N],t[N],L[N],R[N],mark[N]; vector<pair<int,int>> Ans; vector<int> pos,A,B; /* void Answer(int a, int b){ //cout<<a<<" edge "<<b<<endl; } int Query(int x){ Q++; if(mark[x]==1) dft+=(mark[a[x]]==0); else dft-=(mark[a[x]]==0); //cout<<"? "<<x<<" "<<res<<endl; return dft; }*/ bool ask(int x){ mark[x]^=1; int p=Query(x),res=(p!=last); last=p; return res; } void reset(){ f(i,1,2*n+1) ask(i); } void get(int l,int r){ for(auto x : pos){ if(x<l || r<=x){ ask(B[x]); } } pos.clear(); f(i,l,r){ pos.pb(i); if(!mark[B[i]]) ask(B[i]); } } void solve(int l,int r,vector<int> &vec){ cout<<l<<" "<<r<<endl; if(l+1==r){ Ans.pb({vec[0],B[l]}); return ; } vector<int> a,b; int mid=(l+r+1)>>1; get(l,mid); for(auto x : vec){ if(ask(x)==0) a.pb(x); else b.pb(x); } solve(l,mid,a); solve(mid,r,b); } void Solve(int N){ n=N; f(i,1,2*n+1){ if(ask(i)) A.pb(i); else B.pb(i); } f(i,0,n) pos.pb(i); solve(0,n,A); for(auto p : Ans){ Answer(p.F,p.S); } } /* 4 1 4 2 5 3 6 7 8 */ /* main(){ int n; cin>>n; f(i,1,n+1){ s[i]=i,t[i]=i+n; //cin>>s[i]>>t[i]; a[s[i]]=t[i]; a[t[i]]=s[i]; } Solve(n); eror(Q); }*/
#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...