이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//Just try and the idea will come!
#include<bits/stdc++.h>
#define int long long int
using namespace std;
int n,m,pos[1000001],a[1000001],i,tree[4000001],l[1000001],r[1000001],k[1000001],ans[1000001];
vector<vector<int>>g(1000001);
void update(int v,int l,int r,int ind,int val){
if(l==r){tree[v]=val;return;}
int m=(l+r)>>1;
if(ind<=m)update(v*2,l,m,ind,val);
else update(v*2+1,m+1,r,ind,val);
tree[v]=max(tree[v*2],tree[v*2+1]);
}
int get(int v,int l,int r,int ql,int qr){
if(qr<l||r<ql)return 0;
if(ql<=l&&r<=qr)return tree[v];
int mid=(l+r)>>1;
return max(get(v*2,l,mid,ql,qr),get(v*2+1,mid+1,r,ql,qr));
}
main(){
scanf("%lld%lld",&n,&m);
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
pos[i]=i-1;
while(pos[i]&&a[pos[i]]<=a[i])pos[i]=pos[pos[i]];
}
for(i=1;i<=m;i++){
scanf("%lld%lld%lld",&l[i],&r[i],&k[i]);
g[r[i]].push_back(i);
}
for(i=1;i<=n;i++){
if(pos[i])update(1,1,n,pos[i],a[i]+a[pos[i]]);
for(int to:g[i])ans[to]=(get(1,1,n,l[to],r[to])<=k[to]?1:0);
}
for(i=1;i<=m;i++)printf("%lld\n",ans[i]);
}
컴파일 시 표준 에러 (stderr) 메시지
sortbooks.cpp:20:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main(){
^
sortbooks.cpp: In function 'int main()':
sortbooks.cpp:21:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld",&n,&m);
~~~~~^~~~~~~~~~~~~~~~~~
sortbooks.cpp:23:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&a[i]);
~~~~~^~~~~~~~~~~~~~
sortbooks.cpp:28:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld%lld",&l[i],&r[i],&k[i]);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |