제출 #1289229

#제출 시각아이디문제언어결과실행 시간메모리
1289229kiensosadHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
818 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1000000;
int st[4*N+2];
void update(int id,int l,int r,int v,int x){
    if(l>v||r<v) return;
    if(l==r){
        st[id]=max(st[id],x);
        return;
    }
    int mid=(l+r)/2;
    update(id*2,l,mid,v,x);
    update(id*2+1,mid+1,r,v,x);
    st[id]=max(st[id*2],st[id*2+1]);
}
int get(int id,int l,int r,int u,int v){
    if(l>v||r<u) return 0;
    if(l>=u&&r<=v) return st[id];
    int mid=(l+r)/2;
    return max(get(id*2,l,mid,u,v),get(id*2+1,mid+1,r,u,v));
}
vector<array<int,3>> g[N+2];
int ans[N+2];
int c[N+2],a[N+2];
int main(){
    #define task ""
    if(fopen(task ".inp", "r")){
        freopen(task ".inp", "r", stdin);
        freopen(task ".out", "w", stdout);
    }
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    stack<int> s;
    for(int i=1;i<=n;i++){
        while(!s.empty()&&a[s.top()]<a[i]){
            s.pop();
        }
        if(s.empty()) c[i]=0;
        else c[i]=s.top();
        s.push(i);
    }
    int q;
    cin>>q;
    for(int i=1;i<=q;i++){
        int l,r,k;
        cin>>l>>r>>k;
        g[r].push_back({l,k,i});
    }
    for(int i=1;i<=n;i++){
        if(c[i]!=0) {
            update(1,1,n,c[i],a[i]+a[c[i]]);
        }
        for(auto [l,k,id]:g[i]){
            if(get(1,1,n,l,i)<=k) ans[id]=1;
        }
    }
    for(int i=1;i<=q;i++){
        cout<<ans[i]<<"\n";
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

sortbooks.cpp: In function 'int main()':
sortbooks.cpp:29:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         freopen(task ".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
sortbooks.cpp:30:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |         freopen(task ".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#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...