Submission #969973

#TimeUsernameProblemLanguageResultExecution timeMemory
969973LCJLYPark (JOI17_park)C++14
0 / 100
98 ms652 KiB
#include "park.h" //code //Answer(a,b) //Ask(a,b,Place) #include <bits/stdc++.h> using namespace std; #define show(x,y) cout << y << " " << #x << endl; #define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl; #define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl; #define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl; typedef pair<long long,long long>pii; typedef pair<int,pii>pi2; int m=0; set<pii>edge; void dnc(int l, int r){ int lft=0; int rgt=m-1; int mid; int best=rgt+1; while(lft<=rgt){ mid=(lft+rgt)/2; int v[m]; memset(v,0,sizeof(v)); for(int x=0;x<=mid;x++){ v[x]=1; } v[l]=1; v[r]=1; //show4(v,v); //show2(l,l,r,r); bool amos=Ask(min(l,r),max(l,r),v); if(amos){ rgt=mid-1; } else{ best=mid; lft=mid+1; } } if(best==m){ edge.insert({min(l,r),max(l,r)}); } else{ //show(best,best+1); dnc(l,best+1); dnc(best+1,r); } } void Detect(int t, int n) { //show2(t,t,n,n); m=n; for(int x=1;x<n;x++){ dnc(0,n-1); } //dnc(0,n-1); for(auto &it:edge){ //show2(it.first,it.first,it.second,it.second); Answer(it.first,it.second); } } //code
#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...