F 托米搭积木 (思路题)
思路:当t==2时不需要for(n)来加整个数组,只需要另外设置一个add看加了多少。那么t==3的时候就可以输出原数+add。
那么t==1的时候只需要使之为x-add。
#include<algorithm> #include<stdio.h> #include<iostream> using namespace std; int main(){ long long n,m,v,x,y,q,t; long long a[100010]; cin>>n>>m; for(int i=0;i<n;i++){ cin>>a[i]; } int add=0; for(long i=0;i<m;i++){ cin>>t; if(t==1){ cin>>v>>x; a[v-1]=x-add; } else if(t==2){ cin>>y; add=add+y; } else if(t==3){ cin>>q; cout<<a[q-1]+add<<endl; } } return 0; }