CF1077C.Good Array
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Let's call an array good if there is an element in the array that equals to the sum of all other elements. For example, the array a=[1,3,3,7] is good because there is the element a4=7 which equals to the sum 1+3+3.
You are given an array a consisting of n integers. Your task is to print all indices j of this array such that after removing the j-th element from the array it will be good (let's call such indices nice).
For example, if a=[8,3,5,2], the nice indices are 1 and 4:
- if you remove a1, the array will look like [3,5,2] and it is good;
- if you remove a4, the array will look like [8,3,5] and it is good.
You have to consider all removals independently, i. e. remove the element, check if the resulting array is good, and return the element into the array.
我们称一个数组是“好的”,如果该数组中存在某个元素等于其余所有元素之和。例如,数组 a=[1,3,3,7] 是好的,因为其中存在元素 a4=7,它等于 1+3+3。
给你一个由 n 个整数组成的数组 a。你的任务是输出该数组中所有满足如下条件的下标 j(我们称这些下标为“优美的”):从数组中移除第 j 个元素后,所得数组是“好的”。
例如,若 a=[8,3,5,2],则优美的下标为 1 和 4:
- 若移除 a1,数组变为 [3,5,2],它是好的;
- 若移除 a4,数组变为 [8,3,5],它是好的。
你必须独立地考虑每一次移除操作,即:移除该元素 → 检查所得数组是否为“好的” → 再将该元素放回原数组。
输入格式
The first line of the input contains one integer n (2≤n≤2⋅105) — the number of elements in the array a.
The second line of the input contains n integers a1,a2,…,an (1≤ai≤106) — elements of the array a.
输入的第一行包含一个整数 n(2≤n≤2⋅105)—— 表示数组 a 中的元素个数。
输入的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤106)—— 表示数组 a 的元素。
输出格式
In the first line print one integer k — the number of indices j of the array a such that after removing the j-th element from the array it will be good (i.e. print the number of the nice indices).
In the second line print k distinct integers j1,j2,…,jk in any order — nice indices of the array a.
If there are no such indices in the array a, just print 0 in the first line and leave the second line empty or do not print it at all.
第一行输出一个整数 k —— 表示数组 a 中满足如下条件的下标 j 的个数:从数组中删除第 j 个元素后,剩余数组是“好”的(即输出“好”下标的个数)。
第二行按任意顺序输出 k 个互不相同的整数 j1,j2,…,jk —— 即数组 a 的所有“好”下标。
若数组 a 中不存在这样的下标,则第一行仅输出 0,第二行留空或完全不输出。
输入输出样例
输入#1
5 2 5 1 2 2
输出#1
3 4 1 5
输入#2
4 8 3 5 2
输出#2
2 1 4
输入#3
5 2 1 2 4 3
输出#3
0
说明/提示
In the first example you can remove any element with the value 2 so the array will look like [5,1,2,2]. The sum of this array is 10 and there is an element equals to the sum of remaining elements (5=1+2+2).
In the second example you can remove 8 so the array will look like [3,5,2]. The sum of this array is 10 and there is an element equals to the sum of remaining elements (5=3+2). You can also remove 2 so the array will look like [8,3,5]. The sum of this array is 16 and there is an element equals to the sum of remaining elements (8=3+5).
In the third example you cannot make the given array good by removing exactly one element.
在第一个例子中,你可以移除任意一个值为 2 的元素,使得数组变为 [5,1,2,2]。该数组的和为 10,且存在一个元素等于其余元素之和(5=1+2+2)。
在第二个例子中,你可以移除 8,使得数组变为 [3,5,2]。该数组的和为 10,且存在一个元素等于其余元素之和(5=3+2)。你也可以移除 2,使得数组变为 [8,3,5]。该数组的和为 16,且存在一个元素等于其余元素之和(8=3+5)。
在第三个例子中,你无法通过恰好移除一个元素使给定数组变为“好数组”。
输入解题思路,AI测评打分。不知道怎么写?