Submission #890359

#TimeUsernameProblemLanguageResultExecution timeMemory
890359vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
30 / 100
368 ms75600 KiB
#include <bits/stdc++.h> #define ll long long #define fort(x , y) for(int y = 1 ; y <= x ; y++) #define pb push_back #define pf push_front #define ppb pop_back #define int long long #define F first #define S second using namespace std; const int N = 1e6 + 5; const int NN = 1e9 + 7; int n,m,a[N],k[N],l[N],r[N],s[N],cnt,mx[N]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin >> n >> m; for(int i = 1 ; i <= n ; i++){ cin >> a[i]; } cnt = 1; for(int i = 1 ; i < n ; i++){ if(a[i] <= a[i + 1]){ s[i] = cnt; s[i + 1] = cnt; } else{ cnt++; } } for(int j = 1 ; j <= m ; j++){ cin >> l[j] >> r[j] >> k[j]; if(n <= 5000 && m <= 5000){ bool oknt = 0; for(int i = 1 ; i <= n ; i++){ mx[i] = 0; } for(int i = l[j] ; i <= r[j] ; i++){ if(mx[i - 1] > a[i]){ if(mx[i - 1] + a[i] > k[j]){ oknt = 1; break; } } mx[i] = max(a[i],mx[i - 1]); } if(oknt){ cout << 0 << '\n'; } else{ cout << 1 << '\n'; } continue; } if(l[j] == r[j]){ cout << 1 << '\n'; continue; } bool ok = 0; if(s[l[j]] == s[r[j]] && s[l[j]] != 0){ ok = 1; } if(ok){ cout << 1 << '\n'; } else{ cout << 0 << '\n'; } } }
#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...