#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<functional> #include<iostream> #include<cmath> #include<cctype> #include<ctime> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define ForD(i,n) for(int i=n;i;i--) #define RepD(i,n) for(int i=n;i>=0;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define MAXM (1000000+10) int n,m; /* struct tree_arr { int a[MAXM*4]; tree_arr(){memset(a,0,sizeof(a));} void inc(int x,int c) { for(int i=x;i<=n;i+=i&(-i)) a[x]+=c; } int qur(int x) { int ans=0; for(int i=x;i;i-=i&(-i)) ans+=a[x]; return ans; } }T1,T2; void Ins() { }*/ int a[MAXM],tmp=0; int main() { // freopen(".in","r",stdin); // freopen(".out","w",stdout); cin>>n>>m; For(i,n) {scanf("%d",&a[i]);} For(i,m) { int type; scanf("%d",&type); if (type==1) { int v,x; scanf("%d%d",&v,&x); a[v]+=x-(a[v]+tmp); } else if (type==2) { int w; cin>>w; tmp+=w; } else { int v; scanf("%d",&v); cout<<a[v]+tmp<<endl; } } return 0; }
作者:nike0good 发表于2013-6-8 8:25:17 原文链接
阅读:24 评论:0 查看评论