萌新求助分块
查看原帖
萌新求助分块
115359
phigy楼主2021/4/9 21:15

30分。

#include <iostream>

using namespace std;

#define len 1000
#define int long long
int n,m;
int a[1000005];
int fa[1000005];
int c[1005];

signed main()
{
    int i,j,k;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        fa[i]=i/len+1;
    }
    for(i=1;i<=m;i++)
    {
        int op,l,r,s;
        cin>>op;
        if(op==1)
        {
            cin>>l>>r>>s;
            if(fa[l]==fa[r])
            {
                for(j=l;j<=r;j++)
                {
                    a[j]+=s;
                }
            }
            else
            {
                for(j=l;j<=fa[l]*(len)-1;j++)
                {
                    a[j]+=s;
                }
                for(j=r;j>=fa[r]*(len-1);j--)
                {
                    a[j]+=s;
                }
                for(j=fa[l]+1;j<=fa[r]-1;j++)
                {
                    c[j]+=s;
                }
            }
        }
        else
        {   
            cin>>r;
            cout<<a[r]+c[fa[r]]<<endl;
        }
    }
}
2021/4/9 21:15
加载中...