只有#1对了
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m;
ll b[100005],c[100005],c1[100005];
ll lowbit[100005];
void add(ll x,ll k)
{
ll t=x-1;
while(x<=n)
{
c[x]+=k;
c1[x]+=t*k;
x+=lowbit[x];
}
return ;
}
ll ask(ll x)
{
ll t=x;
ll sum=0;
while(x>0)
{
sum+=((t*c[x])-c1[x]);
x-=lowbit[x];
}
return sum;
}
int main()
{
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++)
lowbit[i]=i&-i;
int last=0;
for(int i=1;i<=n;i++)
{
ll x;
scanf("%lld",&x);
b[i]=x-last;
last=x;
if(i==n)
b[i+1]=-x;
}
// cout<<"b";
for(int i=1;i<=n;i++)
{
add(i,b[i]-b[i-1]);
// cout<<b[i]-b[i-1]<<" ";
// cout<<1<<endl;
}
// cout<<endl;v
while(m--)
{
int opt;
scanf("%d",&opt);
if(opt==1)
{
ll l,r,k,d;
scanf("%lld%lld%lld%lld",&l,&r,&k,&d);
if(l>r)
swap(l,r);
if(l==r)
{
add(l,k);
add(r+1,-k);
}
else
{
add(l,k);
ll cnt;
cnt=d-k;
add(l+1,cnt);
add(r+1,-((r-l)*k+d));
}
}
else
{
ll x;
scanf("%lld",&x);
cout<<ask(x)<<"\n";
}
}
return 0;
}