Дистанционная командная олимпиада школьников по программированию

advertisement
Дистанционная командная олимпиада школьников по программированию
Чувашской Республики (20 января 2006 г.).
ВНИМАНИЕ!!! Каждая задача оценивается в 100 баллов!
A. N-ое число Фибоначчи.
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Последовательность Фибоначчи задается следующим образом: первые 2 элемента единицы, остальные - сумма двух предыдущих. Последовательность записана в одну
строку без пробелов. Длина строки не превышает 200 символов.
Вот так: 112358132134..... Требуется найти n-ую цифру (подчеркиваю, именно
цифру) данной последовательности. К примеру, десятая цифра - 1; одиннадцатая - 3.
Входные данные: ввести одно число 1<=N<=200.
Выходные данные: вывести одно число – N-ую цифру Фибоначчи.
Пример входных и выходных данных.
Input.txt
Output.txt
1
1
12
4
B. Палиндромы
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Определить все числа-палиндромы на интервале от N до M (1<=N<=M<=32000).
Входные данные: ввести два числа N и M..
Выходные данные: вывести все числа палиндромы в данном интервале через один
или несколько пробелов. Если палиндромов в данном интервале нет, то вывести одно
число «0» без кавычек.
Пример входных и выходных данных.
Input.txt
Output.txt
1 10
123456789
1000 1100
1001
13 15
0
С. Блоки в массиве.
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Квадратная матрица порядка 2n состоит из четырех блоков. Написать программу,
которая формирует новую матрицу, переставляя блоки исходной в следующем порядке
Входные данные: ввести одно число N (1<=N<=50).
Далее из 2*n строк ввести 2*n элементов. (Элементы массива положительные числа в
интервале от 1 до 1000).
Выходные данные: вывести матрицу после перестановки блоков.
Пример входных и выходных данных.
Input.txt
2
461 698 453 779
908 959 55 81
842 655 150 47
323 212 257 19
Output.txt
842 655 461 698
323 212 908 959
150 47 453 779
257 19 55 81
D. Ферзь на доске.
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Даны координаты ферзя, который находится на шахматной доске 8х8. Надо вывести
массив 8х8, в котором обозначить цифрой 5 ферзя, 1 - все клетки, которые находятся под
ударом ферзя, все остальные клетки заполнить нулями.
Входные данные: ввести координаты ферзя x,y (1<=x,y=8). (1,1 - координаты
верхнего левого угла шахматной доски)
Выходные данные: вывести массив после выполнения выше указанных действий.
Пример входных и выходных данных.
Input.txt
Output.txt
22
11100000
15111111
11100000
01010000
01001000
01000100
01000010
01000001
E. Римская система.
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Перевести число из римской системы в десятичную.
Входные данные: ввести в одной строке римское число длиной не более 250
символов. (Римское число состоит только из заглавных латинских символов).
Выходные данные: вывести данное римское число в десятичной системе счисления.
Пример входных и выходных данных.
Input.txt
Output.txt
IVXLCDM
334
XXVI
F. Заядлые картежники.
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
26
N участников сидят вокруг стола. Каждую минуту одна пара соседей по столу может
поменяться местами. Найти минимальное время (в минутах) необходимое для того, чтобы
все участники пересели в обратном порядке (т.е. левый сосед должен стать правым, а
правый – левым).
Во входном файле содержится одно целое число N (1  N  32767) – количество
участников безумного чаепития.
В выходной файл вывести требуемое для пересадки всех N участников число.
Пример входных и выходных данных.
Пример input.txt
Пример output.txt
4
2
G. ОБЫЧНЫЕ БИЛЕТЫ
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Коля любит теорию чисел. Поэтому он интересуется автобусными билетами.
Билет с числом длиной 2N цифр является «интересным», если произведение первых N
цифр этого числа равно произведению последних N цифр. Другие билеты называются
«обычными».
Коля нашел использованный билет в кармане. К сожалению, билет был
прокомпостирован, так что Питер не мог разобрать некоторые цифры. Он хотел узнать,
является ли этот билет «интересным» для него. Более того, он хотел узнать, как много
различных «интересных» и «обычных» билетов при компостировании могли дать этот
билет.
Помогите Коле найти ответы на его вопросы.
Первая строка входного файла содержит целое число N (1N9). Следующая строка
содержит номер билета. Если некоторая цифра прокомпостирована, она помечается как
«?», в противном случае она изображается как есть.
Первая строка выходного файла должна содержать число «интересных» билетов.
Вторая строка выходного файла должна содержать число «обычных» билетов.
INPUT.TXT
OUTPUT.TXT
2
4
2??3
96
3
46
2?6??3
954
H. "Квадрат".
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Задана прямоугольная таблица из нулей и единиц размером N (количество строк) на
M (количество столбцов) (1N, M1000). Строки и столбцы нумеруются с единицы,
начиная с левого верхнего угла. Написать программу, которая находит размер и
расположение максимального квадрата, состоящего из одних единиц.
Входной файл содержит в первой строке числа N и M, записанные через пробел. В
следующих N строках записано по M символов (0 или 1).
В выходной файл записываются: в первой строке длина стороны, а во второй через
пробел – номера строки и столбца левого верхнего угла наибольшего квадрата.
Пример входных и выходных данных.
INPUT.TXT
34
1111
1111
0111
OUTPUT.TXT
3
12
I. Окружность и треугольник
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Найти количество точек пересечения окружности с невырожденным треугольником.
В первой строке входного файла содержатся 9 действительных чисел x, y, r, x1, y1, x2, y2,
x3, y3, где x,y – координаты центра окружности, r – радиус окружности, x1, y1, x2, y2, x3,
y3- координаты вершин треугольника
Вывести единственное число – количество точек пересечения.
Пример:
Input.txt
Output.txt
1.0 1.0 1.0 0.0 0.0 3.0 0.0 0.0 3.0 4
J. Юбилей
Входной файл: Input.txt.
Выходной файл: Output.txt.
Время тестирования: 2 сек.
Ограничение памяти: 32 Мб.
Сегодня день рождения Теда (Ted). Ему исполнилось 100 лет. Вам нужно составить список
его потомков, упорядоченный по убыванию их возраста. Но для составления списка имеется
только список, содержащий имя отца, имя ребенка и возраст отца в момент рождения ребенка.
В первой строке входного файла содержится одно целое число N (1<=N<100) – количество
потомков Теда. Далее следует N строк, в каждой строке содержатся два имени (не более 20 букв)
и одно целое число, разделенные пробелами – имя отца, имя ребенка и возраст отца в момент
рождения ребенка. Все имена уникальны и не содержат пробелов.
В выходной файл вывести N строк, в каждой строке нужно вывести имя потомка и его возраст
в 100-летний юбилей Теда через пробел. Потомки должны быть выведены в порядке уменьшения
их возраста. Потомки с одинаковым возрастом выводятся в алфавитном порядке.
Пример INPUT.TXT:
OUTPUT.TXT для примера:
4
Ray James 40
James Beelzebub 17
Ray Mark 75
Ted Ray 20
Ray 80
James 40
Beelzebub 23
Mark 5
Download