Submission #526504

#TimeUsernameProblemLanguageResultExecution timeMemory
526504CursedCodeHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
8 / 100
3066 ms262144 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n; long long a[1000005]; long long tree[1000005],i; long long row; set<int>s[2000005]; set<int>::iterator c; void build(int id, int l, int r){ if(l == r){ tree[id] = a[l]; s[id].insert(a[l]); return ; } int m = (l + r) / 2; build(id * 2, l, m); build(id * 2 + 1, m + 1, r); tree[id] = max(tree[id * 2] ,tree[id * 2 + 1]); } long long query(int id, int L, int R, int l, int r){ if(R < l || r < L) return 0; if(l <= L && R <= r) { return tree[id]; } return max(query(id * 2, L, (L + R) / 2, l, r) ,query(id * 2 + 1, (L + R) / 2 + 1, R, l, r)); } long long up(int id, int L, int R, int l, int r, int itr){ if(R < l || r < L) return 0; if(l <= L && R <= r) { int k = 0; for(i = L;i <= R;i++){ if(a[i] < itr) k = max(k,a[i]); } if(k == 0) return 0; return k; } return max(up(id * 2, L, (L + R) / 2, l, r, itr) ,up(id * 2 + 1, (L + R) / 2 + 1, R, l, r, itr)); } long long sit(int l, int r){ int m = (l + r) / 2; if(l == r) return 0; int x = query(1,1,n,l,m); long long k = up(1,1,n,m+1,r,x); if(k == 0) return max(sit(l, m) , sit(m+1, r)); return max(sit(l, m) , max(sit(m+1, r) , k + x)); } signed main(){ int Q; cin >> n; cin >> Q; for(int i = 1; i <= n; i++) cin >> a[i]; build(1, 1, n); while(Q--){ int type, l, r, x; cin >> l >> r >> x; if(sit(l,r) > x) cout << '0' << endl; else cout << '1' << endl; } return 0; }

Compilation message (stderr)

sortbooks.cpp: In function 'int main()':
sortbooks.cpp:55:12: warning: unused variable 'type' [-Wunused-variable]
   55 |        int type, l, r, x;
      |            ^~~~
#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...