Submission #98605

#TimeUsernameProblemLanguageResultExecution timeMemory
98605someone_aapopa (BOI18_popa)C++17
0 / 100
4 ms640 KiB
#include <bits/stdc++.h> #include "popa.h" #define ll long long #define pb push_back #define mp make_pair using namespace std; const int maxn = 1100; /*int query(int a, int b, int c, int d) { cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl; int answer; cin>>answer; return answer; }*/ bool qq(int a, int b, int c, int d) { if(b < a || c < d) return false; else return query(a, b, c, d); } int n; int parent[maxn]; int li[maxn], ri[maxn]; int solvef(int l, int r) { if(l > r) return -1; else if(l == r) return l; int index = r; for(int cekor=n/2;cekor>0;cekor/=2) { while(index-cekor>=l && qq(l, index-cekor, index-cekor, r )) index-=cekor; } li[index] = solvef(l, index-1); ri[index] = solvef(index+1, r); //cout<<"["<<l<<", "<<r<<"] -> "<<index<<"\n"; return index; } // solve function int solve(int N, int *l , int *r) { for(int i=0;i<N;i++) { li[i] = ri[i] = -1; } n = N; int x = solvef(0, n-1); for(int i=0;i<n;i++) { l[i] = li[i]; r[i] = ri[i]; } return x; } /*int main() { int a[6], b[6]; cout<<solve(6, a, b); return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...