Submission #1173551

#TimeUsernameProblemLanguageResultExecution timeMemory
1173551WarinchaiTwo Antennas (JOI19_antennas)C++20
0 / 100
15 ms24136 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<int,int>>add[200005];
vector<pair<int,int>>del[200005];
int inf=1e18+5;
struct node{
    int mx,mn;
    node(int _mx=-inf,int _mn=inf){
        mx=_mx,mn=_mn;
    }
    friend node operator+(node a,node b){
        return node(max(a.mx,b.mx),min(a.mn,b.mn));
    }
};
struct segtree{
    node info[800005];
    void upd(int st,int en,int i,int pos,node val){
        if(st>pos||en<pos)return;
        if(st==en)return info[i]=val,void();
        int m=(st+en)/2;
        upd(st,m,i*2,pos,val);
        upd(m+1,en,i*2+1,pos,val);
        info[i]=info[i*2]+info[i*2+1];
    }
    node fans(int st,int en,int i,int l,int r){
        if(st>r||en<l)return node();
        if(st>=l&&en<=r)return info[i];
        int m=(st+en)/2;
        return fans(st,m,i*2,l,r)+fans(m+1,en,i*2+1,l,r);
    }
}tr;
int a[200005];
int b[200005];
int h[200005];
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    for(int i=1;i<=n;i++){
        cin>>h[i]>>a[i]>>b[i];
        add[i+a[i]].push_back({h[i],i});
        del[i+b[i]].push_back({h[i],i});
    }
    int ans=-1;
    for(int i=1;i<=n;i++){
        //cerr<<"at:"<<i<<"\n";
        for(auto x:add[i])tr.upd(1,n,1,x.second,node(x.first,x.first));
        auto temp=tr.fans(1,n,1,i-b[i],i-a[i]);
        ans=max({ans,h[i]-temp.mn,temp.mx-h[i]});
        //cerr<<"qr:"<<i-b[i]<<" "<<i-a[i]<<":"<<tr.fans(1,n,1,i-b[i],i-a[i])<<"\n";
        for(auto x:del[i])tr.upd(1,n,1,x.second,node());
    }
    int q;cin>>q;
    for(int i=1;i<=q;i++){
        int l,r;cin>>l>>r;
        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...