1788:零数组
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
命题人:
提交:4
解决:2
题目描述
定义一个整型数组 a,其中包含 n 个非负整数(存储索引为0...n-1)。
定义减值操作:任意选择一个正整数 x,并让数组 a 中所有非零元素减去 x,需要保证减值操作后,数组中所有的元素均大于等于 0。例如 n=5 的数组 a 中有 2,0,2,3,7,现在可以选择 x=1 进行减值操作,操作后的元素分别为: 1,0,1,2,6。
初始时,给定正整数 n 和 n 个非负整数组成的数组 a。现在依次进行 q 次操作,操作类型包含:
- 输入整数 k(0<=k<n) 和 x,并修改数组 a, 令 a[k] = x;
- 查询利用减值操作将数组 a 中前 n 个元素全部变为 0 的最少操作步数;
输入
第一行输入一个正整数 n, 表示数组 a 中元素的个数。
第二行以空格隔开输入 n 个非负整数 ai, 第 i (0<=i<n)个整数表示数组 a 中索引为 i 的值。
第二行输入一个正整数 q,表示操作次数。
接下来 q 行,每行先输入一个正整数 op,表示操作类型:
- 如果 op==1,表示当前为操作 1,需要以空格隔开再输入两个非负整数 k,x。
- 如果 op==2,表示当前为操作 2。
输出
输出若干行,依次为每个操作 2 的答案。
样例输入-1 复制
5
2 0 2 3 7
3
2
1 3 2
2
样例输出-1 复制
3
2
提示
样例解释:
第一次操作:
- 选择 x=2,数组 a 变为: 0,0,0,1,5;
- 选择 x=1,数组 a 变为: 0,0,0,0,4;
- 选择 x=4, 数组 a 变为: 0,0,0,0,0;
第二次操作,将 a[3] = 2,数组 a 变为:2,0,2,2,7;
第三次操作:
- 选择 x = 2, 数组 a 变为: 0,0,0,0,5;
- 选择 x = 5, 数组 a 变为: 0,0,0,0,0;