#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[500005];
int dps[500005];
int dp[500005];
int dpf[500005];
int dpfs[500005];
int f[500005];
signed main()
{
int n,m,y=0,l=0,l1=0;
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
if(a[i]<0) dp[-a[i]]+=a[i],dps[abs(a[i])]++,dpf[-a[i]]+=a[i],dpfs[0]++;
else dp[0]+=a[i],dps[0]++,dpf[-a[i]]+=a[i],dpfs[-a[i]]++;
if(a[i]<0) l=max(l,-a[i]);
else l1=max(l1,a[i]);
}
for(int i=1;i<=l;i++)
dp[i]=dp[i-1]+dp[i],dps[i]=dps[i-1]+dps[i];
for(int i=1;i<=l1;i++)
dpf[i]=dpf[i-1]+dpf[i],dpfs[i]=dpfs[i-1]+dpfs[i];
int op,x;
for(int i=1;i<=m;i++)
{
scanf("%lld",&op);
if(op==1)
{
scanf("%lld",&x);
y+=x;
}
if(op==2)
{
if(y>l)
printf("%lld\n",dp[l]+y*dps[l]);
if(y<0)
{
if(y<-l1)
printf("0\n");
else printf("%lld",dpf[y]+y*dpfs[y]);
}
if(y>=0&&y<=l) printf("%lld\n",dp[y]+y*dps[y]);
}
}
}
赛后订正,没法验证,也请大佬们点一下错误