CF1679B.Stone Age Problem
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Once upon a time Mike and Mike decided to come up with an outstanding problem for some stage of ROI (rare olympiad in informatics). One of them came up with a problem prototype but another stole the idea and proposed that problem for another stage of the same olympiad. Since then the first Mike has been waiting for an opportunity to propose the original idea for some other contest... Mike waited until this moment!
You are given an array a of n integers. You are also given q queries of two types:
- Replace i-th element in the array with integer x.
- Replace each element in the array with integer x.
After performing each query you have to calculate the sum of all elements in the array.
从前,两位 Mike 决定为某届 ROI(罕见信息学奥林匹克竞赛)设计一道出色的题目。其中一位提出了一个题目的雏形,但另一位却窃取了这个创意,并将该题目提交给了同一届奥林匹克竞赛的另一场赛事。自那以后,第一位 Mike 便一直在等待机会,将原始创意提交给其他比赛……Mike 一直等到了此刻!
给你一个包含 n 个整数的数组 a,以及 q 个查询,查询分为两种类型:
- 将数组中第 i 个元素替换为整数 x;
- 将数组中所有元素均替换为整数 x。
在每次执行查询后,你都需要计算并输出数组中所有元素的和。
输入格式
The first line contains two integers n and q (1≤n,q≤2⋅105) — the number of elements in the array and the number of queries, respectively.
The second line contains n integers a1,…,an (1≤ai≤109) — elements of the array a.
Each of the following q lines contains a description of the corresponding query. Description begins with integer t (t∈1,2) which denotes a type of the query:
- If t=1, then two integers i and x are following (1≤i≤n, 1≤x≤109) — position of replaced element and it's new value.
- If t=2, then integer x is following (1≤x≤109) — new value of each element in the array.
第一行包含两个整数 n 和 q(1≤n,q≤2⋅105)—— 分别表示数组中元素的个数和查询的个数。
第二行包含 n 个整数 a1,…,an(1≤ai≤109)—— 数组 a 的元素。
接下来的 q 行,每行描述一个对应的查询。每行以一个整数 t(t∈{1,2})开头,表示该查询的类型:
- 若 t=1,则随后是两个整数 i 和 x(1≤i≤n, 1≤x≤109)—— 表示被替换元素的位置及其新值;
- 若 t=2,则随后是一个整数 x(1≤x≤109)—— 表示数组中每个元素的新值。
输出格式
Print q integers, each on a separate line. In the i-th line print the sum of all elements in the array after performing the first i queries.
输出 q 个整数,每个整数占一行。在第 i 行中,输出执行前 i 个查询后数组中所有元素的和。
输入输出样例
输入#1
5 5 1 2 3 4 5 1 1 5 2 10 1 5 11 1 4 1 2 1
输出#1
19 50 51 42 5
说明/提示
Consider array from the example and the result of performing each query:
- Initial array is [1,2,3,4,5].
- After performing the first query, array equals to [5,2,3,4,5]. The sum of all elements is 19.
- After performing the second query, array equals to [10,10,10,10,10]. The sum of all elements is 50.
- After performing the third query, array equals to [10,10,10,10,11]. The sum of all elements is 51.
- After performing the fourth query, array equals to [10,10,10,1,11]. The sum of all elements is 42.
- After performing the fifth query, array equals to [1,1,1,1,1]. The sum of all elements is 5.
考虑示例中的数组以及执行每个查询后的结果:
- 初始数组为 [1,2,3,4,5]。
- 执行第一个查询后,数组变为 [5,2,3,4,5]。所有元素之和为 19。
- 执行第二个查询后,数组变为 [10,10,10,10,10]。所有元素之和为 50。
- 执行第三个查询后,数组变为 [10,10,10,10,11]。所有元素之和为 51。
- 执行第四个查询后,数组变为 [10,10,10,1,11]。所有元素之和为 42。
- 执行第五个查询后,数组变为 [1,1,1,1,1]。所有元素之和为 5。
输入解题思路,AI测评打分。不知道怎么写?