CF962D.Merge Equals
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array of positive integers. While there are at least two equal elements, we will perform the following operation. We choose the smallest value x that occurs in the array 2 or more times. Take the first two occurrences of x in this array (the two leftmost occurrences). Remove the left of these two occurrences, and the right one is replaced by the sum of this two values (that is, 2⋅x).
Determine how the array will look after described operations are performed.
For example, consider the given array looks like [3,4,1,2,2,1,1]. It will be changed in the following way: [3,4,1,2,2,1,1] → [3,4,2,2,2,1] → [3,4,4,2,1] → [3,8,2,1].
If the given array is look like [1,1,3,1,1] it will be changed in the following way: [1,1,3,1,1] → [2,3,1,1] → [2,3,2] → [3,4].
给你一个正整数数组。只要数组中至少存在两个相等的元素,我们就执行如下操作:选择数组中出现次数不少于 2 次的最小值 x;找出该值 x 在数组中最左侧的两个出现位置(即最靠左的两个);删除其中左侧的那个,将右侧那个替换为这两个值之和(即 2⋅x)。
请确定执行完上述所有操作后,数组最终的形态。
例如,若初始数组为 [3,4,1,2,2,1,1],则变化过程如下:
[3,4,1,2,2,1,1] → [3,4,2,2,2,1] → [3,4,4,2,1] → [3,8,2,1]。
若初始数组为 [1,1,3,1,1],则变化过程如下:
[1,1,3,1,1] → [2,3,1,1] → [2,3,2] → [3,4]。
输入格式
The first line contains a single integer n (2≤n≤150000) — the number of elements in the array.
The second line contains a sequence from n elements a1,a2,…,an (1≤ai≤109) — the elements of the array.
第一行包含一个整数 n(2≤n≤150000)—— 表示数组中元素的个数。
第二行包含一个由 n 个元素组成的序列 a1,a2,…,an(1≤ai≤109)—— 表示数组的元素。
输出格式
In the first line print an integer k — the number of elements in the array after all the performed operations. In the second line print k integers — the elements of the array after all the performed operations.
第一行输出一个整数 k —— 所有操作完成后数组中的元素个数。
第二行输出 k 个整数 —— 所有操作完成后数组的元素。
输入输出样例
输入#1
7 3 4 1 2 2 1 1
输出#1
4 3 8 2 1
输入#2
5 1 1 3 1 1
输出#2
2 3 4
输入#3
5 10 40 20 50 30
输出#3
5 10 40 20 50 30
说明/提示
The first two examples were considered in the statement.
In the third example all integers in the given array are distinct, so it will not change.
前两个示例已在题目描述中给出。
在第三个示例中,给定数组中的所有整数互不相同,因此数组不会发生变化。
输入解题思路,AI测评打分。不知道怎么写?