제출 #438713

#제출 시각아이디문제언어결과실행 시간메모리
438713leakedHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
100 / 100
1394 ms130524 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define f first #define s second #define endl '\n' #define vec vector #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define m_p make_pair #define sz(x) (int)x.size() #define pw(x) (1LL<<x) using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef pair<ll,int> pli; typedef pair<int,int> pii; typedef pair<ll,ll> pll; auto rng=bind(uniform_int_distribution<int>(0,1e9),mt19937(time(0))); template<class T>bool umin(T &a,const T &b) {return (a>b?a=b,1:0);} template<class T>bool umax(T &a,const T &b) {return (a<b?a=b,1:0);} template<class T> using ordered_set=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; const int N=1e6+1; struct fenwick{ int t[N]; void init(){ fill(t,t+N,-2e9); } void upd(int id,int x){ id=N-id-1; while(id<N){ umax(t[id],x); id+=id&-id; } } int get(int id){ int ans=-2e9; id=N-id-1; while(id>0){ umax(ans,t[id]); id-=id&-id; } return ans; } }T; int lft[N],rgt[N]; signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); // ifstream cin("input.txt"); // ifstream fin("o.txt"); int n,q; cin>>n>>q; vec<int>a(n); T.init(); for(auto &z : a) cin>>z; vec<pii>vc;vc.pb({2e9,-1}); for(int i=0;i<n;i++){ while(sz(vc) && a[i]>=vc.back().f) vc.pop_back(); lft[i]=vc.back().s; vc.pb({a[i],i}); } vc.clear(); vec<vec<int>>qry(n,vec<int>()); vec<int>l(q),r(q),k(q),answ(q); for(int i=0;i<q;i++){ cin>>l[i]>>r[i]>>k[i];--l[i];--r[i]; qry[r[i]].pb(i); } vec<vec<int>>del(n+1,vec<int>()); for(int i=0;i<n;i++){ del[rgt[i]].pb(i); if(lft[i]!=-1){ T.upd(lft[i],a[lft[i]]+a[i]); } /// also i need to update C for(auto &z : qry[i]){ answ[z]=T.get(l[z]); // cerr<<T.get(l[z])<<endl; } } for(int i=0;i<q;i++){ cout<<(answ[i]<=k[i])<<endl; } return 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...