Страница: 1
2 >> [Всего задач: 6]
[Без тройных повторений]
|
|
Сложность: 3 |
Найти последовательность из 50 нулей и единиц, в
которой никакой отрезок не повторяется три раза подряд. Напечатать НЕТ, если
такой последовательности не существует. Например, в искомой последовательности
нигде не должны встречаться такие отрезки, как 000, или 101010, или
101101101.
[Испытание шаха
]
|
|
Сложность: 3 |
Известна легенда, что в древней Лимонии любой претендент на должность
визиря при шахе должен был выдержать следующее испытание. Ему дается
доска размером M × M и некоторое количество шахматных фигур: ферзей, ладей,
слонов, коней и королей. Претендент должен расставить их на доске таким
образом, чтобы ни одна из фигур не била другие фигуры, и все фигуры были
выставлены на доске. Если претендент выдерживал испытание, он назначался
визирем, а если не выдерживал... то не назначался. Напишите программу,
которая будет решать эту головоломку.
Входные данные
Первое число во входном файле задает размер доски M (2 ≤
M ≤ 12). Следующие 5 целых неотрицательных чисел K, Q, R, B, N задают соответственно количество
королей, ферзей, ладей, слонов и коней, которые требуется расставить. Общее
количество фигур не превосходит M
2
. Фигуры подобраны так, что искомая расстановка существует.
Выходные данные
Вывести в выходной файл доску с расставленными фигурами в виде M строк по
M символов в каждой. Пустые поля обозначаются символом . (точка), поля с
королями – K, ферзями – Q, ладьями – R, слонами – B, конями – N.
Пример входного файла
4 0 0 4 0 0
Пример выходного файла
R...
..R.
...R
.R..
Арифметический ребус – это зашифрованная запись сложения двух
натуральных чисел (например, КОМП+КОМП=СБОРЫ). При этом одинаковым
буквам должны соответствовать одинаковые цифры, разным – разные, и ни
одно из чисел не может начинаться с нуля. Требуется написать программу,
находящую все возможные решения такого ребуса.
Входные данные
Входной файл содержит единственную строку с записью ребуса. Длина строки
не превышает 30 символов.
Выходные данные
Первая строка выходного файла должна содержать число возможных решений
ребуса, а остальные – список решений в алфавитном порядке. Каждое решение
должно быть выведено не более одного раза.
Пример входного файла
ЛЕТО+ЛЕТО=ПОЛЕТ
Пример выходного файла
1
8947+8947=17894
[Треугольники
]
|
|
Сложность: 3+ |
На плоскости отмечено N = 3K точек. Будем рассматривать такие варианты
построения K невырожденных треугольников с вершинами в этих точках, при
которых каждая из заданных точек является вершиной какого-либо
треугольника. Точки расположены так, что хотя бы одно построение с
указанным свойством существует. Требуется определить тот вариант, при
котором суммарная площадь полученных K треугольников минимальна.
Входные данные
Во входном файле содержатся (в указанном порядке) целое число N (1 ≤ N ≤ 30)
и N пар вещественных чисел, задающих координаты точек. Числа разделяются
пробелами и/или символами перевода строки.
Выходные данные
Первая строка выходного файла должна содержать минимально возможное
значение суммарной площади. В каждую из следующих K строк запишите
тройку номеров вершин, образующих очередной из треугольников. Номера
вершин разделяются пробелом.
Пример входного файла
6
0 0
1 0
10 0
0 2
12 0
10 1
Пример выходного файла
2
1 2 4
3 5 6
[Идем кругами
]
|
|
Сложность: 3+ |
Игровое поле представляет собой N кружков, некоторые из которых соединены
отрезками. Каждому кружку приписана какая-то стоимость, а на каждом отрезке
поставлена стрелка. Один из кружков является начальным, другой – конечным.
Игрок должен переместить фишку из начального кружка в конечный, пройдя по
каждому из отрезков ровно один раз. За перемещение по отрезку он получает
определенное количество очков, равное стоимости кружка, в который он
перемещается, взятой со знаком плюс, если движение происходит по
направлению стрелки, и со знаком минус – если в противоположном.
Требуется определить максимальное количество очков, которое может
набрать игрок в этой игре.
Входные данные
Входной файл содержит исходные данные в следующей последовательности:
N, x1, x2, ..., xN, b, q, M, u1, v1, u2, v2,
..., uM, vM. Здесь N – количество кружков (1 ≤ N ≤ 30), xi
– стоимость, приписанная i-му кружку (1 ≤ xi ≤
30 000), b и q – номера начального и конечного кружков (они могут совпадать), M –
количество отрезков, ui
и vi
– номера кружков, соединяемых i-м отрезком (направление стрелки – от ui
к vi). Два кружка могут быть соединены не более чем одним отрезком. Все числа во входном файле являются целыми и
разделяются пробелами и/или символами перевода строки.
Выходные данные
Вывести в выходной файл искомое количество очков и номера кружков, по
которым должен пройти игрок, чтобы набрать это количество. Номера кружков
должны быть записаны в порядке их посещения игроком. Если пройти из
начального кружка в конечный, удовлетворяя правилам игры, невозможно,
выходной файл должен содержать единственную строку «NO SOLUTION».
Пример входного файла
5 1 3 5 100 23
1 4
5
1 2
2 3
5 3
2 5
4 2
Пример выходного файла
-72
1 2 5 3 2 4
Страница: 1
2 >> [Всего задач: 6]