【牛客19】(思路)

Posted on 2018-06-06 19:38  som_nico  阅读(126)  评论(0编辑  收藏  举报

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;
}