#include<stdio.h>
#define N 200005
int p[N],a[N],map[N],n;
int find(int k)
{
if(k==p[k])
return k;
return p[k]=find(p[k]);
}
void add()
{
int x,y;
scanf("%d%d",&x,&y);
x=find(x);
while(x<=n)
{
map[x]+=y;
if(map[x]<=a[x])
break;
y=map[x]-a[x];
map[x]=a[x];
p[x]=find(x+1);
x=p[x];
}
}
int main()
{
int m,i,c;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n+1;i++)
{
map[i]=0;
p[i]=i;
}
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
while(m--)
{
scanf("%d",&c);
if(c==1)
add();
else
{
scanf("%d",&c);
printf("%d\n",map[c]);
}
}
}
return 0;
}
D. Vessels
最新推荐文章于 2020-05-14 08:18:48 发布