Submission #879341

# Submission time Handle Problem Language Result Execution time Memory
879341 2023-11-27T07:22:27 Z 12345678 Two Antennas (JOI19_antennas) C++17
0 / 100
147 ms 25776 KB
#include <bits/stdc++.h>

using namespace std;

const int nx=2e5+5;

int n, h[nx], a[nx], b[nx], ans=-1;
vector<int> add[nx], rem[nx];

struct segtree
{
    int d[4*nx], t=0;
    void build(int l, int r, int i)
    {
        d[i]=t?-2e9:2e9;
        if (l==r) return;
        int md=(l+r)/2;
        build(l, md, 2*i);
        build(md+1, r, 2*i+1);
    }
    void update(int l, int r, int i, int idx, int vl)
    {
        if (r<idx||idx<l) return;
        if (l==r) return void(d[i]=vl);
        int md=(l+r)/2;
        update(l, md, 2*i, idx, vl);
        update(md+1, r, 2*i+1, idx, vl);
        if (t) d[i]=max(d[2*i], d[2*i+1]);
        else d[i]=min(d[2*i], d[2*i+1]);
    }
    int query(int l, int r, int i, int ql, int qr)
    {
        if (qr<l||r<ql) return t?-2e9:2e9;
        if (ql<=l&&r<=qr) return d[i];
        int md=(l+r)/2;
        if (t) return max(query(l, md, 2*i, ql, qr), query(md+1, r, 2*i+1, ql, qr));
        else return min(query(l, md, 2*i, ql, qr), query(md+1, r, 2*i+1, ql, qr));
    }
} mx, mn;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n;
    mx.t=1;
    mx.build(1, n, 1);
    mn.build(1, n, 1);
    for (int i=1; i<=n; i++) cin>>h[i]>>a[i]>>b[i], add[min(nx-1, i+a[i])].push_back(i), rem[min(nx-1, i+b[i])].push_back(i);
    for (int i=1; i<=n; i++)
    {
        for (auto x:add[i]) mx.update(1, n, 1, x, h[x]), mn.update(1, n, 1, x, h[x]);
        if (i-a[i]>=1) 
        {
            ans=max({ans, mx.query(1, n, 1, max(1, i-b[i]), i-a[i])-h[i], -mn.query(1, n, 1, max(1, i-b[i]), i-a[i])+h[i]});
            //cout<<i<<' '<<i-b[i]<<' '<<i-a[i]<<' '<<mx.query(1, n, 1, max(1, i-b[i]), i-a[i])<<' '<<mn.query(1, n, 1, max(1, i-b[i]), i-a[i])<<'\n';
        }
        for (auto x:rem[i]) mx.update(1, n, 1, x, -2e9), mn.update(1, n, 1, x, 2e9);
    }
    cin>>n>>n>>n;
    cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 14684 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 14684 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 147 ms 25776 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 14684 KB Output isn't correct
2 Halted 0 ms 0 KB -