Submission #894535

#TimeUsernameProblemLanguageResultExecution timeMemory
894535AndreyHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
100 / 100
982 ms88320 KiB
#include <bits/stdc++.h> using namespace std; vector<int> seg(4000001); vector<int> wow(4000001); int calc(int l, int r, int ql, int qr, int x) { if(l == ql && r == qr) { return seg[x]; } int m = (l+r)/2,ans = 0; if(qr <= m) { ans = calc(l,m,ql,qr,x*2+1); } else if(ql > m) { ans = calc(m+1,r,ql,qr,x*2+2); } else { ans = calc(l,m,ql,m,x*2+1); ans = max(ans,calc(m+1,r,m+1,qr,x*2+2)); } return max(ans,wow[x]); } void upd(int l, int r, int ql, int qr, int x, int a) { if(l == ql && r == qr) { wow[x] = max(wow[x],a); seg[x] = max(seg[x],a); return; } int m = (l+r)/2; if(qr <= m) { upd(l,m,ql,qr,x*2+1,a); } else if(ql > m) { upd(m+1,r,ql,qr,x*2+2,a); } else { upd(l,m,ql,m,x*2+1,a); upd(m+1,r,m+1,qr,x*2+2,a); } seg[x] = max(seg[x*2+1],seg[x*2+2]); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,q,a,b,c,y = 0; cin >> n >> q; vector<pair<pair<int,int>,int>> bruh(0); vector<int> haha(n+1,1e9+10); vector<int> wow(q); vector<int> ans(q); for(int i = 1; i <= n; i++) { cin >> haha[i]; } for(int i = 0; i < q; i++) { cin >> a >> b >> wow[i]; bruh.push_back({{b,a},i}); } sort(bruh.begin(),bruh.end()); vector<pair<int,int>> idk(1,{haha[0],0}); for(int i = 1; i <= n; i++) { while(haha[i] >= idk[idk.size()-1].first) { idk.pop_back(); } if(idk.size() > 1) { upd(1,n,idk[idk.size()-2].second+1,idk[idk.size()-1].second,0,haha[i]+idk[idk.size()-1].first); } idk.push_back({haha[i],i}); while(y < q && bruh[y].first.first == i) { int r = bruh[y].first.first,l = bruh[y].first.second; ans[bruh[y].second] = calc(1,n,l,r,0); y++; } } for(int i = 0; i < q; i++) { cout << (ans[i] <= wow[i]) << "\n"; } return 0; }

Compilation message (stderr)

sortbooks.cpp: In function 'int main()':
sortbooks.cpp:50:17: warning: unused variable 'c' [-Wunused-variable]
   50 |     int n,q,a,b,c,y = 0;
      |                 ^
#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...