Задачи второго командного чемпионата по программированию среди учащейся и студенческой молодежи Пермской области

 

Задача А. ОСОБЕННЫЕ ДАТЫ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Петя Васечкин родился 7 февраля 1984 года (7.2.1984). Он считает эту дату “особенной”, так как она записывается цифрами без повторений. Ближайшая предыдущая “особенная” дата — 6.2.1984. Ближайшая следующая особенная дата — “2.3.1984”. Петя желает для произвольной даты от 10 до 90 веков н.э. знать ближайшую предыдущую и следующую “особенные” даты.

Требуется помочь Пете написать программу, которая по заданной произвольной дате определяет ближайшие предыдущую и следующую “особенные” даты.

Формат входных данных:
Входной файл содержит одну строку, с датой от 10 до 90 веков. Число месяца записывается без ведущего нуля. Затем через точку записывается номер месяца, без ведущего нуля. Затем через точку записываются обязательно четыре цифры года.

Формат выходных данных:
Выходной файл содержит две строки: в первой — ближайшая предыдущая “особенная” дата. Во второй — ближайшая следующая “особенная” дата. Запись года обязательно должна содержать четыре цифры. Номера дня и месяца записываются без ведущих нулей.

Пример файла входных данных (input.txt):

7.2.1984

Пример файла выходных данных (output.txt):

6.2.1984
2.3.1984

Задача В. ЛИНГВИСТИЧЕСКАЯ ЗАДАЧА

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Однажды Петя Васечкин нашёл англо-зульский и зульско-английский словарь. Читая его, Петя легко установил правила, по которым некоторые заимствованные из английского языка слова записываются на языке “Зулу”. Эти правила однозначно представляет следующий фрагмент словаря:

Зульское словоРусский переводАнглийское слово
badeплохойbad
bomubeбомбаbomb
pikinikiпикникpicnic
pulezidentiпрезидентpresident
palagilafuпараграфparagraph
siginaliсигналsignal
tilansivaliТрансвальtransval
pulaniпланplan
asipiliniаспиринaspirin
apendikisiприложениеapendix
palafiniпарафинparafin
balikoniбалконbalcony
kikileциклcycle

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

Формат входных данных:
В первой строке входного файла input.txt указано натуральное N, не превосходящее 100, — количество исходных слов. В следующих N строках задаются подходящие для заимствования английские слова. Слова задаются по одному в строке и записаны строчными буквами латинского алфавита.

Формат выходных данных:
В каждой строке выходного файла output.txt должна содержаться зульская запись соответствующего английского слова из входного файла.

Пример файла входных данных (input.txt):

3				
bad				
bomb				
picnic

Пример файла выходных данных (output.txt):

bade
bomube
pikiniki

Задача С. БОЛЬШЕ-МЕНЬШЕ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Задаётся строка, состоящая не более чем из 80 символов < и > в произвольном порядке.

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

Формат входных данных:
В первой строке входного файла указывается натуральное число N, задающее количество строк со знаками неравенств. В N следующих строках задаются строки знаков. Длина одной строки не превосходит 80 символов.

Формат выходных данных:
В каждой строке выходного файла должна располагаться соответствующая преобразованная строка входного файла.

Пример файла входных данных (input.txt):

2
><
<>

Пример файла выходных данных (output.txt):

2>1<2
1<2>1

Задача D. ПАУКИ И МУХА

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Муха ползёт по квадратной проволочной сетке размером N * N (1 <= N < 100). Её путь начинается из левого нижнего угла (узел 0, 0). Муха может ползти вверх, вниз, влево или вправо, меняя направление в узлах сетки, но не покидая её.

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

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

Будем считать, что паук номер 1 сидит слева, паук номер 2 сидит снизу, паук номер 3 сидит справа, паук номер 4 сидит сверху. Муха всегда начинает путь из левого нижнего узла (координаты 0, 0). В координатах узлов первое число обозначает номер горизонтали, а второе — номер вертикали, которым принадлежит узел. Первая запись пауков один или два может быть равна нулю, в зависимости от выбранного мухой первоначального направления движения. Пока муха ползет спиной к пауку, он клетки не подсчитывает, поэтому других нулей в записях пауков нет. Все записи пауков корректны.

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

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

Пример файла входных данных (input.txt):

1
1
1
2
0 1
1
2
1
2

Пример файла выходных данных (output.txt):

0 0
1 0
1 1

Задача E. ЧИСЛА ПО ДИАГОНАЛЯМ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Задана квадратная матрица N * N (1 <= N <= 100), заполненная случайными цифрами. Из матрицы читаются числа вдоль главной диагонали в направлении от левого верхнего угла и вдоль побочной диагонали в направлении от левого нижнего угла. Например, для матрицы 3 * 3 Матрица размером 3*3 будут прочитаны числа: 3, 26, 59, 48, 7, 0, 42, 753, 86, 9.

Требуется написать программу, которая проверяет, имеются ли среди прочитанных чисел хотя бы два одинаковых.

Формат входных данных:
В первой строке входного файла указывается натуральное число N (1 <= N <= 100) — размер матрицы. В N следующих строках располагаются случайные цифры по N в строке. Цифры в строке разделяются одним пробелом.

Формат выходных данных:
В единственной строке выходного файла выводится наименьшее повторяющееся число или “Нет” при отсутствии таковых.

Пример 1 файла входных данных (input.txt):

2
1 2
3 4

Пример 1 файла выходных данных (output.txt):

Нет

Пример 2 файла входных данных (input.txt):

2
3 2
3 2

Пример 2 файла выходных данных (output.txt):

2

Задача F. ЧИСЛО, КРАТНОЕ ТРЁМ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Задано натуральное число N (1 <= N <= 1010).

Требуется написать программу, находящую минимальное положительное Х, большее или равное N, которое состоит только из 0 и 1 и делится на 3.

Формат входных данных:
Входной файл содержит одно натуральное число N.

Формат выходных данных:
В выходной файл выводится одно число — минимальное положительное, большее или равное N, и состоящее только из 0 и 1 и делящееся на 3.

Пример файла входных данных (input.txt):

3

Пример файла выходных данных (output.txt):

111

Задача G. ДЕЛИМОСТЬ НА 7

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Петя Васечкин хочет выяснить, делится ли на семь двоичное число, состоящее не более чем из 1000 цифр.

Требуется написать программу, которая выполняет желание Пети и выводит “Да”, если число делится на 7, или выводит минимальное число, записанное в десятичной системе счисления, которое нужно добавить к исходному двоичному числу, чтобы получилось число, кратное семи.

Формат входных данных:
В единственной строке входного файла задается двоичное число, запись которого завершается точкой.

Формат выходных данных:
Выходной файл содержит единственную строку, в которой выводится “Да”, если число делится на семь, или выводится минимальное число, записанное в десятичной системе счисления, которое нужно добавить к исходному двоичному числу, чтобы получилось число, кратное семи.

Пример 1 файла входных данных (input.txt):

111.

Пример 1 файла выходных данных (output.txt):

Да

Пример 2 файла входных данных (input.txt):

100

Пример 2 файла выходных данных (output.txt):

3

Задача H. URL

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

В начале девяностых годов была изобретена World Wide Web (WWW). В настоящее время большинство людей думают, что WWW просто состоит из HTML страниц, которые можно прочитать браузером. Однако, одной из основных целей при разработке WWW была задача объединения различных существующих протоколов связи. Информация из Internet доступна через множество протоколов: FTP, HTTP, E-mail, News, Gopher 2 и многих других. Благодаря WWW, все эти услуги могут теперь единообразно адресоваться через URL (Uniform Resource Locators). Синтаксис URLs определяется в Internet стандартом RFC 1738.

На уроке информатики Петя Васечкин познакомился с упрощенным синтаксисом записи URL, который сводится к следующему:

protocol"://"host[":"port]["/"path]

Здесь:

Protocol — всегда один из http, ftp или gopher.
Host — строка, состоящая из букв (a-z, A-Z), цифр (0-9), точек (.) или минусов(-).
Port — положительное натуральное число, меньшее чем 65536.
Path — строка символов, не содержащая пробелов.

Квадратные скобки [] означают, что заключенная в них строка является необязательной. В двойные апострофы заключены терминальные символы.

Примеры URL:

http://www.informatik.uni-ulm.de/acm
ftp://acm.baylor.edu:1234/pub/staff/mr-p
gopher://veryold.edu

Требуется помочь П. Васечкину написать программу, которая выполняет грамматический разбор URL на его компоненты.

Формат входных данных:
Входной файл начинается со строки, содержащей единственное натуральное N, — количество URL во входном файле. Следующие N строк содержат по одному URL в строке в формате, описанном выше. URL состоит максимум из 60 символов каждый.

Формат выходных данных:
Для каждого URL в выходной файл выводится пять строк. В первой строке указывается URL, затем через один пробел #, затем ещё через один пробел порядковый номер URL во входном файле без незначащих нулей.
Во второй строке сначала выводится “Protocol = ”, где равно выделяется пробелами, затем название протокола: ftp, http или gopher.
В третьей строке выводится “Host = ”, где равно выделяется пробелами, затем — соответствующая часть URL.
В четвертой строке выводится “Port = ”, где равно выделяется пробелами, затем — соответствующая часть URL или фраза , если эта часть отсутствует.
В пятой строке выводится “Path = ”, где равно выделяется пробелами, затем — соответствующая часть URL или фраза , если эта часть отсутствует.
В выходном файле разбор одного URL от другого должен отделяться пустой строкой.

Пример файла входных данных (input.txt):

3
ftp://acm.baylor.edu:1234/pub/staff/mr-p
http://www.informatik.uni-ulm.de/acm
gopher://veryold.edu

Пример файла выходных данных (output.txt):

URL # 1
Protocol = ftp
Host = acm.baylor.edu
Port = 1234
Path = pub/staff/mr-p

URL # 2
Protocol = http
Host = www.informatik.uni-ulm.de
Port = 
Path = acm

URL # 3
Protocol = gopher
Host = veryold.edu
Port = 
Path = 

Задача I. ДУГИ ОКРУЖНОСТИ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

На окружности единичного радиуса задано N дуг (1 <= N <= 1000). Начало и конец каждой дуги обозначаются целым числом градусов. Все дуги ориентированы по часовой стрелке, то есть дуга [300°;30°] имеет “протяженность” 270°, а дуга [40°;310°] — 90°.

Требуется написать программу, которая будет определять размер в градусах области пересечения дуг.

Формат входных данных:
В первой строке входного файла задаётся натуральное число N. В N следующих строках задаются по два натуральных числа, разделённые одним пробелом, задающие начальную и конечную точки одной дуги в градусах. Числа могут изменяться от 0 до 360.

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

Пример файла входных данных (input.txt):

1
300 30

Пример файла выходных данных (output.txt):

270

Задача J. МАССИВ 100 x 100

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 15 сек.

Дано натуральное N (1 <= N <= 100) и задан массив, содержащий N * N целых чисел.

Требуется найти подмассив с максимальной суммой элементов.

Формат входных данных:
В первой строке входного файла задаётся единственное число N. Следующие N строк содержат по N целых чисел, разделенных одним пробелом.

Формат выходных данных:
Выходной файл содержит искомый подмассив из нескольких строк и столбцов с максимальной суммой элементов. Числа в строке разделяются одним пробелом. Количество строк и столбцов в ответе могут не совпадать.

Пример файла входных данных (input.txt):

4							
-1 -2 -3 -4
5 6 7 8
-9 -10 -11 -12
13 14 15 16

Пример файла выходных данных (output.txt):

13 14 15 16

Задача K. ПЕТИНА ГОЛОВОЛОМКА

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

В первом классе Петя Васечкин увлекался головоломкой: Зашифровано русское слово: @$&. Расшифруй слово, если известно, что 1) @ / 16 = z, 2) x + x = z, 3) @ + x = &, 4) z * 6 = k, 5) k + x = $, 6) z / 2 = 1.

После недолгих размышлений и вычислений у Пети получилось: @=32, $=13, &=33, что позволило расшифровать зашифрованное слово: "юля".

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

Шифруются русские предложения, слова в которых записаны без пробелов и только строчными буквами. В арифметических примерах используются только операции сложения (+), вычитания (-), умножения (*) и деления нацело (/). Операнды и результат могут быть только натуральными числами, меньшими 1000. Запись арифметического примера начинается первым операндом, затем следует знак операции, второй операнд, знак равно и результат. В записи примера отсутствуют пробелы. Операнды и результат могут быть представлены одним символом, изображающим переменную, либо числом.

Известно, что головоломка всегда имеет единственное решение.

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

Формат выходных данных:
Выходной файл должен содержать одну строку с расшифрованным предложением.

Пример файла входных данных (input.txt):

@$&                                      
@/16=z
x+x=z
@+x=&
z*6=k
k+x=$
z/2=1

Пример файла выходных данных (output.txt):

 юля

Задача L. ПЕЧАТЬ СТРОКИ

Технические требования:
Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек.

Петя Васечкин очень любит играть в следующую игру: Произвольным образом выбираются два натуральных числа N (1 <= N <= 1000) и M (1 <= M <= 100). Образуется строка символов, в которой подряд выписываются числа сначала одна 1, затем две 2, затем три 3 и так далее до N. Например, для N = 5 будет получена строка: 122333444455555. Затем полученная строка записывается в несколько строк по M символов в строке. Последняя строка может быть не полной. Например, предыдущая строка для M = 3 будет записана в виде:

122
333
444
455
555

Требуется написать программу, которая избавит Петю В. от этого пустого времяпрепровождения.

Формат входных данных:
Входной файл в единственной строке содержит два числа N и M, не превосходящие 1000 и разделенные одним пробелом.

Формат выходных данных:
В каждой строке выходного файла содержится по M символов из полученной для N строки. Последняя строка может быть не полной.

Пример файла входных данных (input.txt):

2 5

Пример файла выходных данных (output.txt):

122
333
444
455
555

 


© Оргкомитет чемпионата, 2001

Рейтинг ресурсов УралWeb
Сайт создан в системе uCoz