Олимпиадный тренинг

Задача . E. Случайная победа


В Берляндии проводится чемпионат, в котором участвует \(n\) игроков. У игрока с номером \(i\) есть \(a_i\) (\(a_i \ge 1\)) фишек.

Чемпионат состоит из \(n-1\) игры, которые проводятся по следующим правилам:

  • в каждой игре выбирается два случайных игрока с ненулевым количеством фишек;
  • победителем игры считается игрок, у которого больше фишек (при равенстве победитель выбирается случайно);
  • победивший игрок забирает себе все фишки проигравшего.

Последний игрок с ненулевым количеством фишек считается победителем чемпионата.

Все случайные решения, которые принимаются во время чемпионата, принимаются равновероятно и независимо.

Например если \(n=4\), \(a = [1, 2, 4, 3]\), то один из вариантов развития игры следующий (могли быть и другие варианты):

  • во время первой игры были выбраны первый и четвертый игроки. Количество фишек у четвертого игрока больше, поэтому он забирает фишки первого игрока. Теперь \(a = [0, 2, 4, 4]\);
  • во время второй игры были выбраны четвертый и третий игроки. Количество фишек у них однаково, но случайным образом третий игрок стал победителем. Теперь \(a = [0, 2, 8, 0]\);
  • во время третьей игры были выбраны второй и третий игроки. Количество фишек у третьего игрока больше, поэтому он забирает фишки второго игрока. Теперь \(a = [0, 0, 10, 0]\);
  • третий игрок объявляется победителем чемпионата.

Победители чемпионата получат именные призы. Поэтому судьи хотят заранее узнать, какие игроки имеют шанс на победу, то есть, имеют ненулевую вероятность выиграть чемпионат. Вам было поручено найти всех таких игроков.

Входные данные

В первой строке находится одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следуют \(t\) наборов входных данных.

Первая строка каждого набора входных данных состоит из одного целого положительного числа \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количества игроков в чемпионате.

Во второй строке каждого набора входных данных находятся \(n\) целых положительных чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) — количества фишек у игроков.

Гарантируется, что сумма \(n\) по всем наборам входных данных не превышает \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных выведите количество игроков, которые имеют ненулевую вероятность выиграть чемпионат. На следующей строке выведите номера этих игроков в возрастающем порядке. Игроки пронумерованы начиная с единицы в порядке следования во входных данных.


Примеры
Входные данныеВыходные данные
1 2
4
1 2 4 3
5
1 1 1 1 1
3
2 3 4 
5
1 2 3 4 5

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя