printЗадачи очного тура региональной олимпиады Информатика-2005

1. Семь королевств

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Необходимо раскрасить карту, на которой нарисовано семь стран. Страны, имеющие общую границу, должны быть раскрашены разными цветами.
Напишите программу, которая выводит все непохожие раскраски для карты, упорядочив их по номеру краски, выбранной для первой страны, при совпадении – для второй и так далее. Раскраски считаются похожими, если существует взаимно-однозначное соответствие между цветами в этих раскрасках. Из всех похожих раскрасок необходимо вывести только одну раскраску с наименьшим номером цвета у первой страны, если таких раскрасок несколько, выбирается раскраска с наименьшим номером цвета у второй страны и так далее.
В первой строке входного файла содержится одно целое число `N` (`0\ ≤\ N\ ≤\ 21`) – количество границ между странами. Далее следует `N` строк, в каждой строке содержится два целых числа, разделенных пробелом – номера стран, имеющих общую границу.
В выходной файл вывести одну или более строк, содержащих по семь целых чисел от 1 до 7, разделенных пробелами – варианты раскраски.

Пример ввода

14
2 5
7 6
2 7
2 1
2 3
3 1
3 5
1 5
1 7
1 4
4 5
5 6
4 7
4 6

Вывод для примера

1 2 3 2 4 1 3
1 2 3 2 4 1 4
1 2 3 2 4 1 5
1 2 3 2 4 3 4
1 2 3 2 4 3 5
1 2 3 2 4 5 3
1 2 3 2 4 5 4
1 2 3 2 4 5 6
1 2 3 3 4 1 4
1 2 3 3 4 1 5
1 2 3 3 4 2 4
1 2 3 3 4 2 5
1 2 3 3 4 5 4
1 2 3 3 4 5 6
1 2 3 4 5 1 3
1 2 3 4 5 1 5
1 2 3 4 5 1 6
1 2 3 4 5 2 3
1 2 3 4 5 2 5
1 2 3 4 5 2 6
1 2 3 4 5 3 5
1 2 3 4 5 3 6
1 2 3 4 5 6 3
1 2 3 4 5 6 5
1 2 3 4 5 6 7

2. Кратное

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая находит наименьшее положительное целое число `K`, состоящее только из заданных цифр и кратное заданному целому числу `N`.
Во входном файле в первой строке содержится целое число `N` (`1\ <\ N\ <\ 5000`). Во второй строке перечислены от 1 до 10 различных цифр, из которых нужно составлять искомое число `K`.
В первой строке выходного файла вывести найденное целое число `K` или 0, если такого числа не существует.

Пример ввода 1

22
701

Пример вывода 1

110

Пример ввода 2

2
1

Пример вывода 2

0

3. Стрельба из пушки на Луне

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

При наклоне ствола пушки `A` градусов ядро падает на расстоянии `L` метров от пушки. Напишите программу, вычисляющую угол наклона пушки `B`, при котором ядро упадет на расстоянии `R`. Сопротивлением воздуха и кривизной поверхности пренебречь. Скорость ядра при выстреле не меняется.
Во входном файле содержатся три вещественных числа `A` (`0\ <\ A\ <\ 90`), `L` (`L\ >\ 0`) и `R` (`R\ >\ 0`), разделенных пробелами.
В первой строке выходного файла угол наклона пушки `B` в градусах с точностью `10^{-2}` или слово IMPOSSIBLE, если никакой наклон пушки не позволит выстрелить на требуемое расстояние. Если существует несколько вариантов, вывести один из них (любой).

Пример ввода

15.0 100.0 150.0

Пример вывода

24.30

4. Сумма кубов

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая выводит все пары целых чисел `X` и `Y`, таких что `X\ ≤\ Y` и `X^3+Y^3=N`, где `N` – заданное целое положительное число.
В первой строке входного файла содержится одно целое число `N` (`1\ ≤\ N\ <\ 10^9`).
В выходной файла вывести пары чисел `X` и `Y` в порядке возрастания `X`, каждая пара на отдельной строке. Для заданного числа `N` существует как минимум одна такая пара.

Пример ввода

9

Пример вывода

1 2

5. Двоичные коды

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Расстоянием между двумя двоичными кодами называется количество несовпадающих двоичных разрядов.
Напишите программу, которая вычисляет расстояние между двумя двоичными кодами, соответствующим машинному представлению двух целых чисел. В следующем примере расстояние между кодами равно 3:
`45_10=0``101``101_2`
`21_10=0``010``101_2`
В первой строке входного файла содержатся два целых числа `A` и `B` (`0\ ≤\ A\ ≤\ 10^9`, `0\ ≤\ B\ ≤\ 10^9`), разделенных пробелом.
В первой строке выходного файла вывести одно целое число – расстояние между двоичными кодами чисел `A` и `B`.

Пример ввода

45 21

Пример вывода

3

6. Переключения

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая вычисляет количество переключений между приемными станциями мобильной связи при следовании по отрезку прямой дороги. Связь всегда устанавливается с ближайшей к участку дороги станцией. Нет точек на дороге, которые бы находились на равном расстоянии сразу от трех или более станций, нет протяженных участков дороги, которые бы находились на границе действия сразу двух станций. Расстояние между точками переключения не менее `10^{-4}`.
В первой строке входного файла содержится пять целых чисел `N`, `X_1`, `Y_1`, `X_2`, `Y_2` (`1\ ≤\ N\ ≤\ 100`), разделенных пробелами – количество станций и координаты концов отрезка дороги. Далее следует `N` строк, содержащих по два целых числа `X`, `Y`, разделенных пробелом – координаты приемных станций. Все координаты в диапазоне от 0 до 1000.
В выходной файла вывести одно целое – количество переключений между станциями на заданном участке дороги.

Пример ввода

2 1 1 10 10
0 0
100 100

Пример вывода

0
loading