Kotlin Heroes: Practice 7 |
---|
Закончено |
Назовем массив хорошим, если в нем есть элемент, равный сумме всех остальных элементов. Например, массив $$$a=[1, 3, 3, 7]$$$ — хороший, так как $$$a_4=7$$$ равно $$$1 + 3 + 3$$$.
Вам дан массив $$$a$$$ из $$$n$$$ целых чисел. Ваше задание — найти все такие индексы $$$j$$$ этого массива, что после удаления $$$j$$$-го элемента массив станет хорошим (назовем такие индексы красивыми).
Например, если $$$a=[8, 3, 5, 2]$$$, красивые индексы — $$$1$$$ и $$$4$$$:
Все удаления надо рассматривать независимо, то есть для каждого индекса надо удалить элемент, проверить, что массив теперь хороший, и после этого вставить элемент обратно.
В первой строке записано одно целое число $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$) — количество элементов в $$$a$$$.
Во второй строке записаны $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^6$$$) — элементы массива $$$a$$$.
В первой строке выведите $$$k$$$ — количество таких индексов $$$j$$$ массива $$$a$$$, что после удаления $$$j$$$-го элемента массив станет хорошим (то есть, выведите количество красивых индексов).
Во второй строке выведите $$$k$$$ различных целых чисел $$$j_1, j_2, \dots, j_k$$$ в любом порядке — красивые индексы $$$a$$$.
Если таких индексов нет в массиве $$$a$$$, в первой строке выведите $$$0$$$, а вторую строку оставьте пустой или не выводите вообще.
5 2 5 1 2 2
3 4 1 5
4 8 3 5 2
2 1 4
5 2 1 2 4 3
0
В первом примере можно удалить любой элемент со значением $$$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$$$).
В третьем примере нельзя удалением только одного элемента сделать массив хорошим.
Название |
---|