Задача A. Договор

Автор:Жюри всероссийских зимних сборов школьников 2007-2008
Входной файл: contract.in   Ограничение времени:2 сек
Выходной файл: contract.out   Ограничение памяти:64 Мб
Максимальный балл:100  

Условие

Есть n человек, каждый из которых характеризуется натуральным числом — тяжелостью характера. Эти люди хотят заключить договор. Известно, что номер договора имеет вид x/y, где x — сумма тяжестей характеров людей, вступающих в договор, а y — минимальная тяжесть характера среди людей, вступающих в договор. По народным поверьям, договор будет успешным, если x нацело делится на y.

Найдите максимальную по количеству группу человек, у которой договор будет успешным.

Формат входного файла

В первой строке находится единственное целое число 1 ≤ n ≤ 500 — количество человек. Во второй написано n чисел ai — тяжести характеров этих людей.

Формат выходного файла

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

Ограничения

1 ≤ n ≤ 500

1 ≤ ai ≤ 500

Примеры тестов

Входной файл (contract.in) Выходной файл (contract.out)
1
4
2 3 4 5
4
1 2 3 4

Задача B. Лучи

Автор:Жюри всероссийских зимних сборов школьников 2007-2008
Входной файл: rays.in   Ограничение времени:2 сек
Выходной файл: rays.out   Ограничение памяти:64 Мб
Максимальный балл:100  

Условие

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

Формат входного файла

В первой строке входного файла записано единственное число N. В следующих N строках содержатся пары целых чисел xi, yi, не превосходящих по абсолютной величине 104 — координаты i-й точки.

Формат выходного файла

В i-ю строку выходного файла запишите координаты произвольной точки, лежащей на луче, выходящем из точки i, но не совпадающей с ней. Все числа должны быть целые, по абсолютной величине не превосходящие 109.

Если требуемого решения не существует, выведите No solution.

Ограничения

1 ≤ N ≤ 1000

Примеры тестов

Входной файл (rays.in) Выходной файл (rays.out)
1
3
0 0
0 0
10 10
10 10
-10 10
20 0

Задача C. Психологи

Автор:Жюри всероссийских зимних сборов школьников 2007-2008
Входной файл: shrink.in   Ограничение времени:2 сек
Выходной файл: shrink.out   Ограничение памяти:64 Мб
Максимальный балл:100  

Условие

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

Формат входного файла

В первой строке входного файла записано два натуральных числа n, m — количество детей и количество обоюдных знакомств. Далее следует m строк с описанием знакомств. В каждой строке записано два натуральных числа x и y, что показывает, что школьник x знаком с школьником y. Гарантируется, что каждое знакомство указано один раз, а так же то, что возможно разбить детей на две группы указанным выше образом.

Формат выходного файла

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

Ограничения

1 ≤ n ≤ 1000

1 ≤ m ≤ 106

1 ≤ x, y ≤ n

x ≠ y

Примеры тестов

Входной файл (shrink.in) Выходной файл (shrink.out)
1
3 2
1 2
2 3
0
2
4 2
1 2
2 3
2

0.035s 0.005s 11