acm.tuit.uz TATU, Toshkent, 19-iyun 2015 yil A и B и ошибки

advertisement
acm.tuit.uz
TATU, Toshkent, 19-iyun 2015 yil
A. A и B и ошибки компиляции
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайт
A и B готовятся к олимпиадам про программированию.
B очень любит отлаживать свой код. Но перед тем, как запустить
решение и начать отладку, код нужно сначала скомпилировать.
Изначально компилятор выдавал n ошибок компиляции, каждая из
которых обозначается положительным целым числом. После некоторых
усилий, B удалось исправить сначала одну, а потом еще одну ошибку.
Однако, несмотря на то, что B уверен, что исправил две ошибки, он не
может понять, какие именно ошибки компиляции исчезли — компилятор
языка, на котором пишет B, каждый раз выдает ошибки в новом порядке! B
уверен, что в отличие от многих других языков программирования, ошибки
компиляции для его языка программирования не зависят друг от друга, т. е.
от исправления одной ошибки, множество остальных ошибок не изменяется.
А вы можете помочь B узнать, какие именно две ошибки он исправил?
Входные данные
Первая строка входных данных содержит целое число n (3 ≤ n ≤ 105) —
изначальное количество ошибок компиляции.
Вторая
строка
содержит n целых
чисел
через
9
пробел a1, a2, ..., an (1 ≤ ai ≤ 10 ) — номера ошибок, выданных компилятором в
первый раз.
Третья строка содержит n - 1 целых чисел через пробел b1, b2, ..., bn - 1 —
номера ошибок, выданных при второй компиляции. Гарантируется, что
последовательность в третьей строке содержит все числа второй строки, за
исключением ровно одного.
Четвертая строка содержит n - 2 целых чисел через пробел с1, с2, ..., сn 2 — номера ошибок, выданных при третьей компиляции. Гарантируется, что
последовательность в четвертой строке содержит все числа третьей строки,
за исключением ровно одного.
Выходные данные
Выведите два числа на отдельной строке: номера ошибок компиляции,
исчезнувших после того как B внёс первое и второе исправление
соответственно.
Входные данные
Выходные данные
5
8
1 5 8 123 7
123
123 7 5 1
517
6
1
143357
3
37543
4375
acm.tuit.uz
TATU, Toshkent, 19-iyun 2015 yil
B. Таня и поздравление
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайт
Маленькая Таня решила поздравить папу с Днем рождения и подарить
ему открытку. Она уже составила текст для поздравления —
строку s длины n, состоящую из прописных и строчных букв латинского
алфавита. Таня пока не умеет писать, поэтому она нашла газету и решила
вырезать оттуда буквы и наклеить их в открытку, чтобы получилась строка s.
В газете записана строка t, состоящая из прописных и строчных букв
латинского алфавита. Известно, что длина строки t не меньше длины
строки s.
Возможно, что в газете не хватает каких-то букв для составления
поздравления, а какие-то буквы могут оказаться лишними. Поэтому Таня
хочет вырезать из газеты некоторые n букв и составить из них поздравление
длины ровно n, чтобы оно было максимально похоже на s. Если буква в
заданной позиции совпадает и по значению, и по регистру (в строке s и в той
строке, что наклеит Таня), то она радостно кричит «УРА!», а если буква в
заданной позиции совпадает только по значению, но не по регистру, то она
произносит «ОПА».
Таня хочет наклеить такую надпись, чтобы максимальное количество
раз прокричать «УРА!», а если это можно сделать несколькими способами, то
во вторую очередь она хочет максимизировать количество раз, которое она
скажет «ОПА». Вам предстоит помочь Тане в составлении поздравления.
Входные данные
В первой строке задана строка s (1 ≤ |s| ≤ 2·105), состоящая из
прописных и строчных букв латинского алфавита — текст для поздравления,
который составила Таня.
Во второй строке задана строка t (|s| ≤ |t| ≤ 2·105), состоящая из
прописных и строчных букв латинского алфавита — текст, записанный в
газете.
Запись |a| обозначает длину строки a.
Выходные данные
Выведите два целых числа, разделенных пробелом, где:
 первое число — сколько раз Таня прокричит «УРА!» при составлении
поздравления,
 второе число — сколько раз Таня произнесет «ОПА» при составлении
поздравления.
Входные данные
AbC
DCbA
ABC
abc
abacaba
AbaCaBA
Выходные данные
30
03
34
acm.tuit.uz
TATU, Toshkent, 19-iyun 2015 yil
C. Панграмма
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайт
Слово или предложение на некотором языке называется панграммой,
если в нем встречаются все символы алфавита этого языка хотя бы один раз.
Панграммы часто используют в типографии для демонстрации шрифтов или
тестирования средств вывода различных устройств.
Вам дана строка, состоящая из маленьких и больших латинских букв.
Проверьте, является ли эта строка панграммой. Считается, что строка
содержит букву латинского алфавита, если эта буква встречается в верхнем
или нижнем регистре.
Входные данные
В первой строке записано одно целое число n (1 ≤ n ≤ 100) —
количество символов в строке.
Во второй строке записана сама строка. Строка содержит
исключительно строчные и заглавные латинские буквы.
Выходные данные
 Выведите «YES», если строка является панграммой, и «NO» в
противном случае.
Входные данные
12
toosmallword
Выходные данные
NO
35
YES
TheQuickBrownFoxJumpsOverTheLazyDog
acm.tuit.uz
TATU, Toshkent, 19-iyun 2015 yil
D. Фабрика
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайт
На одной промышленной фабрике проходит реформа рабочего дня.
Директор предложил установить норму производства мифических деталей.
Если к началу рабочего дня на заводе находилось x деталей, то по плану к
концу должно быть произведено еще
(остаток от деления x на m)
деталей. К сожалению, пока не нашлось ни одного покупателя на
мифические детали, поэтому все произведенные детали остаются на заводе.
Совет директоров обеспокоен, не остановится ли производство по
такому плану в один прекрасный день (а именно, не настанет ли момент,
когда текущее количество деталей на заводе делится на m).
По
заданному
количеству
деталей a в
первый
день
и
числу m проверьте, остановится ли производство.
Входные данные
В первой строке содержатся два целых числа a и m (1 ≤ a, m ≤ 105).
Выходные данные
Выведете «Yes» (без кавычек), если производство может остановиться
и «No» иначе.
Входные данные
Выходные данные
15
No
36
Yes
acm.tuit.uz
TATU, Toshkent, 19-iyun 2015 yil
E. Выражение
ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайт
Петя учится в школе и очень любит математику. Уже несколько занятий они
с классом проходят арифметические выражения. На последнем уроке
учительница написала на доске три положительных целых числа a, b, c.
Задание заключалось в том, чтобы расставить между этими числами знаки
операций '+' и '*', а также, возможно, скобки. Значение получившегося
выражения должно быть как можно больше. Рассмотрим пример: пусть
учительница выписала на доску числа 1, 2 и 3. Вот некоторые варианты
расстановки знаков и скобок:
 1+2*3=7
 1*(2+3)=5
 1*2*3=6
 (1+2)*3=9
Обратите внимание на то, что знаки операций можно вставлять только
между a и b, а также между b и c, то есть нельзя менять числа местами. Так, в
приведенном примере нельзя получить выражение (1+3)*2.
Легко убедиться, что максимальное значение, которое можно получить, —
это 9.
Ваша задача — по заданным a, b и c вывести, какое максимальное значение
выражения можно получить.
Входные данные
Во входных данных записаны три целых числа a, b и c, каждое в
отдельной строке (1 ≤ a, b, c ≤ 10).
Выходные данные
Выведите максимальное значение выражения, которое можно
получить.
Входные данные
Выходные данные
1
9
2
3
2
10
3
60
Download