蒟蒻求助20 1wa其他几个TLE
查看原帖
蒟蒻求助20 1wa其他几个TLE
358677
FishingRod楼主2020/10/15 20:15
#include<bits/stdc++.h>
using namespace std;

const int N=2e6+5;
long long a[N],b[N];

inline long long read()
{
    int x=0,y=1;char c=getchar();//y代表正负(1.-1),最后乘上x就可以了。
    while (c<'0'||c>'9') {if (c=='-') y=-1;c=getchar();}//如果c是负号就把y赋为-1
    while (c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
    return x*y;//乘起来输出
}

int main()
{
    long long n,q,s,t,l,r,c,B=0;
    n=read(),q=read(),s=read(),t=read();
    for(int i=0;i<=n;i++)
    {
        a[i]=read();
        b[i]=a[i]-a[i-1];
    }
    while(q--)
    {
        B=0;
        l=read(),r=read(),c=read();
        b[l]+=c;b[r+1]-=c;
        for(int i=1;i<=n;i++)a[i]=a[i-1]+b[i];
        for(int i=1;i<=n;i++)
        {
            if(b[i]>0)B-=s*abs(b[i]);
            else if(b[i]<0)B+=+t*abs(b[i]);
        }
        printf("%d\n",B);
    }
}

2020/10/15 20:15
加载中...