NC16410. 托米搭积木
描述
小托米真的很可爱呀(>_<)
输入描述
第一行两个整数n,m.
第二行n个整数,第i个整数代表ai的值.
接下来m行,每行代表一个操作:
第一个整数t代表操作的类型
若t=1,则接下来两个整数v,x,代表操作1.
若t=2,则接下来一个整数y,代表操作2.
若t=3,则接下来一个整数q,代表操作3.
输出描述
对于每个操作3,输出其对应的答案.
示例1
输入:
10 11 1 2 3 4 5 6 7 8 9 10 3 2 3 9 2 10 3 1 3 10 1 1 10 2 10 2 10 3 1 3 10 3 9
输出:
2 9 11 20 30 40 39
Python3(3.5.2) 解法, 执行用时: 1113ms, 内存消耗: 14444K, 提交时间: 2018-06-05 20:02:28
[n, m] = [int(x) for x in input().split()] delta = 0 cur = [int(x) for x in input().split()] for i in range(m): a = [int(x) for x in input().split()] if a[0] == 1: cur[a[1] - 1] = a[2] - delta elif a[0] == 2: delta += a[1] else: print(cur[a[1] - 1] + delta)
C++11(clang++ 3.9) 解法, 执行用时: 217ms, 内存消耗: 1252K, 提交时间: 2018-06-01 21:18:44
#include<bits/stdc++.h> using namespace std; int n,i,j,k,l,m,a[1000005],v,g=0,t; long long x,y; int main() {cin>>n>>m; for(i=1;i<=n;i++) {cin>>a[i]; } while(m--) {cin>>k; if(k==1) {cin>>v>>x; a[v]=x-g; } else if(k==2) {cin>>y; g+=y; } else {cin>>y; cout<<a[y]+g<<"\n"; } } }