제출 #889895

#제출 시각아이디문제언어결과실행 시간메모리
889895vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
17 / 100
2221 ms100048 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; const int M = 5001; const int N=1e6+10; int aa[N]; int a[M], pref[M]; int ans[M][M]; int main(){ int n, q; cin >> n >> q; if(n<=5001 && q<=5001){ a[0]=1e9+7; for(int i=1; i<=n; i++){ cin>>a[i]; } for(int i=1; i<=n; i++) { pref[i]=i-1; while(a[i]>=a[pref[i]]) { pref[i]=pref[pref[i]]; } } for(int i=1; i<=n; i++){ ans[i][i]=0; for(int j=i+1; j<=n; j++){ ans[i][j]=ans[i][j-1]; if(pref[j]>=i){ ans[i][j]=max(ans[i][j], a[pref[j]] + a[j]); } } } while(q--){ int l, r, k; cin >> l >> r >> k; if(ans[l][r]<=k){ cout<<"1\n"; } else{ cout<<"0\n"; } } } else{ bool ok[N]; ok[0]=1; for(int i=1; i<=n; i++){ cin>>aa[i]; if(ok[i-1] && aa[i] >= aa[i-1]){ ok[i]=1; } } for(int i=1; i<=q; i++){ int l,r,k; cin>>l>>r>>k; bool ans=1; if(ok[r]){ cout<<ans<<"\n"; continue; } for(int i=l; i<r; i++){ if(aa[i]>aa[i+1]){ ans=0; break; } } cout<<ans<<"\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...