#include<cstdio>
#include<algorithm>
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
#define getcx getchar_unlocked
inline void rl( int &n )
{
n=0;
int ch=getcx();int sign=1;
while( ch < '0' || ch > '9' )
{if(ch=='-')sign=-1; ch=getcx();}
while( ch >= '0' && ch <= '9' )
n = (n<<3)+(n<<1) + ch-'0', ch=getcx();
n=n*sign;
}
void update(long long BIT[],int n,int x,int val)
{
while(x<=n)
{
BIT[x]=BIT[x]+val;
//cout<<"BIT["<<x<<"] "<<BIT[x]<<endl;
x+=(x&-x);
}
}
long long query(long long BIT[],int a)
{
long long sum=0;
while(a>0)
{
sum+=(BIT[a]);
//cout<<"BIT["<<a<<"] "<<BIT[a]<<endl;
a-=(a&-a);
}
return sum;
}
int main()
{
long long n,m,x;
cin>>n;
long long BIT[n+10];
memset(BIT,0,sizeof BIT);
for(int i=1;i<=n;i++)
{
cin>>x;
update(BIT,n,i,x);
}
for(int i=1;i<=n;i++)
{
cout<<BIT[i]<<" ";
}
cout<<endl;
int q;
cin>>q;
while(q--)
{
int f,p,q,v;
cin>>f;
if(!f)
{
cin>>p>>q>>v;
update(BIT,n,p,v);
update(BIT,n,q+1,-v);
for(int i=1;i<=n;i++)
{
cout<<BIT[i]<<" ";
}
cout<<endl;
}
else
{
cin>>v;
cout<<query(BIT,v)<<endl;
}
}
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZ2V0Y3ggZ2V0Y2hhcl91bmxvY2tlZAppbmxpbmUgdm9pZCBybCggaW50ICZuICkKewogICAgbj0wOwogICAgaW50IGNoPWdldGN4KCk7aW50IHNpZ249MTsKICAgIHdoaWxlKCBjaCA8ICcwJyB8fCBjaCA+ICc5JyApCiAgICB7aWYoY2g9PSctJylzaWduPS0xOyBjaD1nZXRjeCgpO30KICAgIHdoaWxlKCBjaCA+PSAnMCcgJiYgY2ggPD0gJzknICkKICAgIG4gPSAobjw8MykrKG48PDEpICsgY2gtJzAnLCBjaD1nZXRjeCgpOwogICAgbj1uKnNpZ247CiB9CnZvaWQgdXBkYXRlKGxvbmcgbG9uZyBCSVRbXSxpbnQgbixpbnQgeCxpbnQgdmFsKQp7Cgl3aGlsZSh4PD1uKQoJewoJCUJJVFt4XT1CSVRbeF0rdmFsOwoJCS8vY291dDw8IkJJVFsiPDx4PDwiXSAiPDxCSVRbeF08PGVuZGw7CgkJeCs9KHgmLXgpOwoJfQp9CmxvbmcgbG9uZyBxdWVyeShsb25nIGxvbmcgQklUW10saW50IGEpCnsKCWxvbmcgbG9uZyBzdW09MDsKCXdoaWxlKGE+MCkKCXsKCQlzdW0rPShCSVRbYV0pOwoJCS8vY291dDw8IkJJVFsiPDxhPDwiXSAiPDxCSVRbYV08PGVuZGw7CgkJYS09KGEmLWEpOwoJfQoJcmV0dXJuIHN1bTsKfQppbnQgbWFpbigpCnsKCWxvbmcgbG9uZyBuLG0seDsKCWNpbj4+bjsKCWxvbmcgbG9uZyBCSVRbbisxMF07CgltZW1zZXQoQklULDAsc2l6ZW9mIEJJVCk7Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKCQljaW4+Png7CgkJdXBkYXRlKEJJVCxuLGkseCk7Cgl9Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKCQljb3V0PDxCSVRbaV08PCIgIjsKCX0KCWNvdXQ8PGVuZGw7CglpbnQgcTsKCWNpbj4+cTsKCXdoaWxlKHEtLSkKCXsKCQlpbnQgZixwLHEsdjsKCQljaW4+PmY7CgkJaWYoIWYpCgkJewoJCQljaW4+PnA+PnE+PnY7CgkJCXVwZGF0ZShCSVQsbixwLHYpOwoJCQl1cGRhdGUoQklULG4scSsxLC12KTsKCQkJZm9yKGludCBpPTE7aTw9bjtpKyspCgkJCXsKCQkJCWNvdXQ8PEJJVFtpXTw8IiAiOwoJCQl9CgkJCWNvdXQ8PGVuZGw7CgkJfQoJCWVsc2UKCQl7CgkJCWNpbj4+djsKCQkJY291dDw8cXVlcnkoQklULHYpPDxlbmRsOwoJCX0JCQoJfQp9