Submission #499062

#TimeUsernameProblemLanguageResultExecution timeMemory
499062ZiyodaHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
0 / 100
3029 ms76844 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define IOS ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); const ll N = 1e6+1; ll tr[N], n; vector<ll>ad[N], a(N), li(N), ri(N), ki(N); void add(ll q, ll w){ for(int i=0; i<q; i++) tr[i] = max(tr[i], w); } int sol(ll q, ll w){ ll c=0; for(int i=q; i<=w; i++) c = max(c, tr[i]); return c; } void solve(){ ll m; cin >> n >> m; for(int i=1; i<=n; i++) cin >> a[i]; vector<ll>s; for(int i=1; i<=m; i++){ cin >> li[i] >> ri[i] >> ki[i]; ad[ri[i]].push_back(i); } vector<bool>y(m+1); for(int i=1; i<=n; i++){ while(!s.empty()){ //cout << a[s.back()] << ' '; if(a[i]>=a[s.back()]) s.pop_back(); else break; } ll p = (s.empty()? 0:s.back()); //cout << a[p] << endl; add(p, a[p]+a[i]); for(auto u:ad[i]) y[u] = (sol(li[u], ri[u])<=ki[u]); s.push_back(i); } //cout << 'u' << endl; for(int i=1; i<=m; i++) cout << y[i] << "\n"; } int main() { IOS; int t=1; //cin >> t; while(t--){ solve(); } }
#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...