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

 

A. ПАРОХОДЫ
(Автор: Морозенко В.В. Оппонент Брызгалов Е.В.)

 

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

Однажды Денис Кораблев весь день просидел на берегу реки, наблюдая за проплывающими мимо пароходами. Всего их оказалось ровно N. Каждый пароход он видел в течение определенного отрезка времени. Пусть нам известны начальный момент и длительность каждого из этих отрезков. Какое максимальное количество пароходов Денис Кораблев мог видеть одновременно?

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

Формат входного файла
В первой строке входного файла записано натуральное число N (1 <= N <= 100) – общее число пароходов. В каждой из следующих N строк содержится по четыре целых числа, разделенных одним пробелом и означающих начальный момент и длительность отрезка времени, в течение которого Денис Кораблев видел очередной пароход. Первые два числа – это соответственно часы (от 9 до 17) и минуты (от 0 до 59) начального момента, а третье и четвертое число – это часы (от 0 до 8) и минуты (от 0 до 59) длительности отрезка времени.

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

Пример входных и выходных данных:

input.txt				output.txt
3					2
10   30   0   30
 9   50   1   10
11    0   2    0

 

B. ХОРДЫ
(Автор: Морозенко В.В. Оппоненты Брызгалов Е.В. и Соловьев Е.Н.)

 

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

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

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

Формат входного файла
Входной файл содержит единственное натуральное число N (4 <= N <= 512) – количество точек на окружности.

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

Пример входных и выходных данных:

input.txt			output.txt
5				5

 

C. НЕЗНАЙКА
(Автор: Морозенко В.В. Оппонент Брызгалов Е.В.)

 

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

Незнайка совершил путешествие по квадратной доске размера N × N (N <= 1000) из левой нижней в правую верхнюю клетку и обратно. Первую половину пути он передвигался за один ход либо на одну клетку вверх, либо на одну клетку вправо, пока не оказался в правой верхней клетке доски. После этого он повернул обратно и стал передвигаться за один ход либо на одну клетку вниз, либо на одну клетку влево, пока не попал в левую нижнюю клетку доски, из которой начал своё путешествие. Весь Незнайкин маршрут можно закодировать строкой из символов В и Г, означающих один ход соответственно «по вертикали» или «по горизонтали».

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

Формат входного файла
Входной файл содержит строку из символов В и Г, кодирующую Незнайкин маршрут.

Формат выходного файла
Выходной файл должен содержать целое число — количество клеток, в которых Незнайка побывал дважды.

Пример входных и выходных данных:

input.txt			output.txt
ВГГВВГВГГГВВ			2

 

D. ВЕСЫ
(Автор: Соловьев Е.Н. Оппонент Гладков В.П.)

 

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

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

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

У весов нельзя перемещать груз между чашами или уменьшать его. Груз можно добавлять на любую чашу весов в любом количестве. Вес чаши весов равен сумме веса груза в этой чаше и весов обеих чаш привязанных к ней. К одной чаше могут быть привязаны только одни весы.

Формат входных данных
В первой строке входного файла содержится единственное число P – количество весов (1 <= P <= 3000). В каждой из последующих строк содержится по латинскому символу и по три натуральных числа, разделенные одним пробелом и описывающих i-е весы (1 <= i <= P): латинская буква обозначает к какой из чаш весов, расположенных в каскаде выше данных, привязаны i-е весы (L – к левой, R – к правой, Q – если весы находятся на верхнем уровне). Затем следует номер весов, к одной из чаш которых привязаны i-е (для весов верхнего уровня здесь указывается 0, могут быть лишь одни такие весы). Затем указываются веса грузов на левой и правой чашах i-х весов (вес груза лежит в интервале от 1 до 200). Полный вес полностью уравновешенных весов не превышает 1000000000.

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

Пример входных и выходных данных:

INPUT.TXT	OUTPUT.TXT
     Пример 1
1		127
Q 0 175 48
     Пример 2
3		61
Q 0 3 3
L 1 4 5
R 2 6 8

 

E. СЛОВАРЬ N-СКА
(Автор: Соловьев Е.Н. Оппонент Гладков В.П.)

 

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

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

В библиотеке города составили словарь языка, расположив все слова в алфавитном порядке.

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

Формат входных данных
В первой строке задается алфавит – строка длиной не более 26 символов, состоящая из маленьких латинских букв. Во второй – слово в заданном алфавите, длиной не более 255 символов.

Формат выходных данных
Одно число – номер слова в словаре. Гарантируется, что номер не превышает 1000000000.

Примеры входных и выходных данных:

INPUT.TXT                       OUTPUT.TXT
   Пример 1
bca				1
bbbbbbbbbbbbbbbbbbbbbbb
   Пример 2
za				2
zzzzzzzzzzzzzzzza
   Пример 3
zxcvbn				5
b
   пример 4
qwerty				6
qy

 

F. СЧАСТЛИВЫЕ БИЛЕТЫ
(Автор: Гладков В.П. Оппонент Брызгалов Е.В.)

 

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

На всех маршрутах автобусов в N-ске используются билеты с шестизначными номерами от 000000 до 999999 включительно. Счастливыми называют билеты, у которых сумма первых трех цифр равна сумме последних трех цифр. Среди пассажиров популярна такая игра: для любого билета нужно указать номера ближайшего предшествующего и ближайшего следующего счастливых билетов.

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

Формат входных данных
Входной файл состоит из нескольких строк. В каждой строке находится одно шестизначное число – номер билета.

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

Пример файла входных данных:

555555
123321

Пример файла выходных данных:

555555=555546 555564
123320=123312 123321

 

G. ТРУБОПРОВОД
(Автор: Соловьев Е.Н. Оппонент Брызгалов Е.В.)

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

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

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

Для удобства каждая разновидность труб имеет свое обозначение латинскими буквами от A до Z номер, и все отрезки труб имеют одинаковый размер, таким образом, как куски труб, так и трубопровод задаются сроками заглавных латинских символов, каждый из которых обозначает разновидность трубы в соответствующей позиции. Кусок трубы может состоять из K однородных отрезков (1 <= K <= 100). Каждый кусок трубы является неделимым, т.е. его нельзя разрезать с целью перемещения ее частей или их удаления. Каждый кусок трубы может подключаться как в прямом, так и в обратном направлении. Собранный трубопровод не должен содержать никаких лишних кусков (два подряд идущих одинаковых отрезка трубы не считаются за один). Количество кусков труб не ограничено.

Формат входных данных
Первая строка входного файла содержит строку длиной не более 255 символов, которая задает трубопровод, который нужно составить. Следующая строка содержит единственное натуральное число N (1 <= N <= 500), задающее количество разновидностей кусков труб. Далее в каждой из последующих N строк содержится натуральное число M (1 <= M <= 10000), задающее цену одной из разновидностей куска трубы, и через пробел строка, задающая сам этот кусок.

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

Примеры входных и выходных данных:

INPUT.TXT                       OUTPUT.TXT
   Пример 1
ABDSFSF                         8
3
5 ABD
2 SF
3 SFSF
   Пример 2
ABCDEF                          Impossible
3
140 AB
250 BC
100 DEF
   Пример 3
ADBADBFMB                       34
5
25 ADB
40 BAD
5 AD
20 FMB
2 B

 

H. НЕДЕЛИМОСТЬ НА ПРОСТЫЕ ЧИСЛА
(Автор: Соловьев Е.Н.)

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

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

Формат входных данных
В первой строке входного файла содержатся числа M и N (1 <= M <= N <= 1000000000). Во второй строке входного файла содержится число C (1 <= C <= 16) — количество простых чисел, а также через пробел сами эти числа. Простые числа не повторяются, каждое из них не превышает 10000.

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

Примеры входных и выходных данных:

INPUT.TXT                       OUTPUT.TXT
   Пример 1
1 10                            7
1 3
   Пример 2
10 20                           4
2 3 2
   Пример 3
110 112                         0
3 2 7 3
   Пример 4
100 125                         10
5 13 5 7 11 3

 

I. ПИРАМИДА
(Автор: Соловьев Е.Н.)

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

Существует бесконечная пирамида натуральных чисел. Числа в ней располагаются по следующему принципу: числа идут последовательно от 1 до бесконечности, вначале по одному числу в одной строке, затем по два числа в двух строках, по три числа в трех строках и так далее. Направление следования чисел в каждой следующей строке меняется на противоположное (см. рис.).

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

Формат входных данных
В первой и единственной строке входного файла содержится два натуральных числа N и K. Оба числа не превосходят 2000000. Число N показывает номер строки, в которой находится искомое число, а K показывает его положение в строке, считая слева (в обоих случаях нумерация идет с единицы).

Формат выходных данных
В выходной файл необходимо вывести искомое число, если оно не превышает 1000000000 и существует. В ином случае вывести строку Not found.

Примеры входных и выходных данных:

INPUT.TXT                       OUTPUT.TXT
   Пример 1
1 1                             1
   Пример 2
2 2                             3
   Пример 3
8 3                             21
   Пример 4
10 6                            Not found

 

J. РЕДАКТОР ДЛЯ N++
(Автор: Гладков В.П. Оппонент Бальба П.А.)

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

В школах города N-ска используется алгоритмический язык N++. В нем имеется условный оператор, имеющий следующий синтаксис: IF условие THEN операторы1 ELSE операторы2 ENDIF.

Будем рассматривать программы, в которых в качестве условий используются произвольные последовательности латинских букв, заключенные в апострофы (апострофы внутри условий строго запрещены), а из операторов используются только условный и пустой (отсутствие чего-либо). Все программы получаются вложением условных и пустых операторов друг в друга. Такие программы у школьников N-ска принято записывать в одну строку, не разделяя элементы языка пробелами. Для облегчения проверки учителя N-ска обратились к Вам с просьбой о создании редактора, который преобразует творения школьников к виду:

1) все элементы внутри программы разделяются одним пробелом или переводом строки;

2) ключевые слова IF, THEN, ELSE, ENDIF одного условного оператора подписываются друг под другом в соседних строках;

3) условие записывается в одной строке с соответствующим IF и представляет последовательность латинских букв, заключенных в апострофы;

4) запись операторов1 начинается в строке с соответствующим THEN и продолжается в соответствии с перечисленными правилами;

5) запись операторов2 начинается в строке с соответствующим ELSE и продолжается в соответствии с перечисленными правилами;

6) все буквы в программе на N++ являются заглавными латинскими буквами;

7) кроме условного используется также пустой оператор (отсутствие чего-либо).

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

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

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

Пример входных и выходных данных:

input.txt
IF'IF'THENIF'THEN'THENELSEENDIFELSEENDIF
output.txt
IF 'IF'
THEN IF 'THEN'
           THEN
           ELSE
           ENDIF
ELSE
ENDIF

 

K. СЛОВАРЬ N-СКА II
(Автор: Гладков В.П. Оппонент Брызгалов Е.В.)

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

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

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

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

Формат входных данных
В первой строке задается алфавит – строка длиной не более 26 символов, состоящая из маленьких латинских букв. Во второй – число – длина искомых глаголов (не больше 50).

Формат выходных данных
Все глаголы заданной длины по одному в строке в алфавитном порядке или Impossible.

Примеры файлов входных и выходных данных:

input.txt			output.txt
abcdef                          dba
3                               eba
                                eca
                                fba
                                fca
                                fcb
                                fda

 

L. ЧИСЛО
(Автор: Морозенко В.В. Оппонент Бальба П.А.)

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

Задано натуральное число N. Требуется написать программу, которая находит максимальное натуральное число меньшее N, каждая из цифр которого больше предыдущей.

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

Формат выходных данных
В выходном должно быть искомое число или сообщение: No solution, если искомое число не существует.

Примеры файлов входных и выходных данных:

input.txt                       output.txt
2796                            2789

 


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

 


Рейтинг ресурсов УралWeb

Сайт создан в системе uCoz