Bedao Grand Contest 01 - SEQGAME

Xem dạng PDF

Gửi bài giải


Điểm: 0,90 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Lưu ý: các bạn không nhập, xuất dữ liệu bằng file kể cả khi đề bài có yêu cầu. Đọc, ghi dữ liệu được thực hiện ở stdin và stdout.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    ngoccaidu2008  đã bình luận lúc 23, Tháng 10, 2025, 15:48

    code tham khảo (dùng lazi cơ bản thôi):

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define __Hormer_Nguyen__ signed main()
    #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
    const int maxn=5+1e5;
    int n,m,ans=LLONG_MAX;
    struct node
    {
        int lazi;
        int val;
    }s[maxn*4];
    struct q
    {
        int l,r,d;
    };
    vector<q>vt;
    void seg(int v,int l,int r)
    {
        if (l==r)
        {
            s[v].val=0;
            s[v].lazi=0;
            return;
        }int m=(l+r)/2;
        seg(2*v,l,m);
        seg(2*v+1,m+1,r);
        s[v].val=0;
        s[v].lazi=0;
    }
    void down(int v)
    {
        s[2*v].lazi+=s[v].lazi;
        s[2*v+1].lazi+=s[v].lazi;
        s[2*v].val+=s[v].lazi;
        s[2*v+1].val+=s[v].lazi;
        s[v].lazi=0;
    }
    void update(int v,int l,int r,int a,int b,int d)
    {
        if (b<l || a>r) return;
        if (a<=l && b>=r)
        {
            s[v].lazi+=d;
            s[v].val+=d;
            return;
        }int m=(l+r)/2;
        down(v);
        update(2*v,l,m,a,b,d);
        update(2*v+1,m+1,r,a,b,d);
        s[v].val=max(s[2*v].val,s[2*v+1].val);
    }
    int get(int v,int l,int r,int a,int b)
    {
        if (b<l || a>r) return -LLONG_MAX;
        if (a<=l && b>=r) return s[v].val;
        int m=(l+r)/2;
        down(v);
        return max(get(2*v,l,m,a,b),get(2*v+1,m+1,r,a,b));
    }
    __Hormer_Nguyen__
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        //file("seqgame");
        cin>>n>>m;
        seg(1,1,n);
        vt.resize(m+5);
        for (int i=1;i<=m;i++)
        {
            cin>>vt[i].l>>vt[i].r>>vt[i].d;
            update(1,1,n,vt[i].l,vt[i].r,vt[i].d);
        }
        for (int i=1;i<=m;i++)
        {
            int ma=-LLONG_MAX;
            if (vt[i].l>1) ma=max(ma,get(1,1,n,1,vt[i].l-1));
            if (vt[i].r<n) ma=max(ma,get(1,1,n,vt[i].r+1,n));
            int ma1=get(1,1,n,vt[i].l,vt[i].r)-vt[i].d;
            ans=min(ans,max(ma,ma1));
        }cout<<ans;
    }
    

  • -4
    tminh_hk20  đã bình luận lúc 16, Tháng 5, 2023, 15:31

    lazy cơ bản


  • 0
    from_somewhere_with_love  đã bình luận lúc 8, Tháng 10, 2021, 11:57

    Nghĩa là Di dương với mọi input đúng không.