Вам дан набор целых чисел размера n (он может содержать одинаковые элементы).
Вы должны найти поднабор чисел, где сумма чисел в поднаборе делится на n без остатка и
вывести индексы этих чисел в наборе. Если такого набора не существует, вывести −1

Формат входных данных:

В первой строке входных данных находится единственное целое число n (1 6 n 6 106) — размер
набора целых чисел.
Во второй строке входных данных находится n целых чисел a1, a2,...,an(0 6 ai 6 109) — элементы данного вам набора целых чисел.

Формат выходных данных:

Если ответа не существует — выведите −1.
Иначе выведите две строки.
В первой строке выходных данных выведите размер поднабора ответа.
Во второй строке выведите индексы чисел в наборе, которые входят в ответ. Выводить индексы
в любом порядке. Индексы в ответе не должны повторяться.
Если есть несколько таких поднаборов, то выведите любой.
Python

Приложения:

Ответы

Ответ дал: asilvejstruk
1

def find_subset(n, arr):

   s = sum(arr)

   if s % n != 0:

       return -1

   target = s // n

   for i, num in enumerate(arr):

       if num == target:

           return (1, [i + 1])

   for i, num in enumerate(arr):

       for j, other in enumerate(arr[i + 1:]):

           if num + other == target:

               return (2, [i + 1, j + i + 2])

   return -1

n = int(input().strip())

arr = list(map(int, input().strip().split()))

result = find_subset(n, arr)

if result == -1:

   print(-1)

else:

   size, indices = result

   print(size)

   print(*indices)

Вас заинтересует