比赛 板子大赛 评测结果 AAAAAAAAAA
题目名称 区间修改 最终得分 100
用户昵称 长安惊龙灵松 运行时间 0.424 s
代码语言 C++ 内存使用 3.62 MiB
提交时间 2025-01-22 14:55:39
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=10005;
int n,m,a[N],b[N],l,r,x,sum;
signed main()
{
    freopen("interval_mod.in","r",stdin);
    freopen("interval_mod.out","w",stdout);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%lld",&a[i]);
        b[i]=a[i]-a[i-1];
    }
    scanf("%lld",&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%lld%lld%lld",&l,&r,&x);
        b[l]+=x,b[r+1]-=x;
    }
    for(int i=1;i<=n;i++)
    {
        sum+=b[i];
        printf("%lld ",sum);
    }
    return 0;
}
//#include<bits/stdc++.h>
//#define int long long
//using namespace std;
//const int N=1e4+5;
//int n,m,a[N],d[N<<2],lazy[N<<2],l,r,x;
//void build(int k,int l,int r)
//{
////    printf("%d %d",l,r);system("pause");
//    if(l==r)
//    {
//        d[k]=a[l];
//        return;
//    }
//    int mid=l+r>>1;
//    build(k<<1,l,mid);
//    build(k<<1|1,mid+1,r);
//    d[k]=d[k<<1]+d[k<<1|1];
//}
//void lan(int k,int l,int r,int v)
//{
//    d[k]+=(r-l+1)*v;
//    lazy[k]+=k;
//}
//void pushdown(int k,int l,int r,int mid)
//{
//    if(lazy[k]==0) return;
//    lan(k<<1,l,mid,lazy[k]);
//    lan(k<<1|1,mid+1,r,lazy[k]);
//    lazy[k]=0;
//}
//int query_sum(int k,int l,int r,int x,int y)
//{
//    if(l>=x&&r<=y) return d[k];
//    if(r<x||l>y) return 0;
//    int mid=l+r>>1;
//    pushdown(k,l,r,mid);
//    return query_sum(k<<1,l,mid,x,y)+query_sum(k<<1|1,mid+1,r,x,y);
//}
//void update(int k,int l,int r,int x,int y,int v)
//{
//    if(l>=x&&r<=y)
//    {
//        lan(k,l,r,v);
//        return;
//    }
//    int mid=l+r>>1;
//    pushdown(k,l,r,mid);
//    if(mid>=x) update(k<<1,l,mid,x,y,v);
//    if(mid<y)  update(k<<1|1,mid+1,r,x,y,v);
//    d[k]=d[k<<1]+d[k<<1|1];
//}
//signed main()
//{
////    freopen("interval_mod.in","r",stdin);
////    freopen("interval_mod.out","w",stdout);
//    scanf("%d",&n);
//    for(int i=1;i<=n;i++)
//    {
//        scanf("%d",&a[i]);
//    }
//    build(1,1,n);
//    scanf("%d",&m);
//    for(int i=1;i<=m;i++)
//    {
//        scanf("%d%d%d",&l,&r,&x);
//        update(1,1,n,l,r,x);
//    }
//    for(int i=1;i<=n;i++)
//    {
//        printf("%lld ",query_sum(1,1,n,i,i));
//    }
//    return 0;
//}