Problem A. Биология

advertisement
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem A. Биология
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 секунды
512 мебибайт
Как известно, цепочка ДНК формируется из четырёх аминокислот, обозначаемых соответственно
буквами ‘A’, ‘C’, ‘G’ и ‘T’. Таким образом, цепочку можно представить в виде строки, составленной
из этих букв.
Известно, что у всех марсианских видов цепочка ДНК состоит из чётного числа аминокислот и что
у марсианских животных цепочка ДНК обладает следующим свойством: она читается слева направо
так же, как и справа налево (то есть является палиндромом), при этом каждая из её половин также
читается слева направо так же, как и справа налево. Не обладающие таким свойством цепочки
принадлежат растениям.
На практическом занятии по биологии на марсианской Летней олимпиадной школе дали задание —
по заданной цепочке ДНК вымершего марсианского вида выяснить, принадлежит ли эта цепочка
животному.
Input
Вход содержит цепочку ДНК — одну непустую строку, состоящую из символов ‘A’, ‘G’, ‘T’ и ‘C’.
Гарантируется, что длина строки чётна и не превосходит 100.
Output
Если данная цепочка принадлежит марсианскому животному, выведите “YES”. Иначе выведите “NO”.
Examples
standard input
AGTC
AGAAGA
ACCA
standard output
NO
YES
NO
Page 1 of 6
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem B. Олимпиада по математике
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 seconds
512 mebibytes
После проверки олимпиады по математике председателю жюри надо сообщить оценки (целые положительные числа от 1 до 100) в оргкомитет для печати сертификатов. Но, к сожалению, выключенный из соображений информационной безопасности интернет так и не включили, так что
председателю пришлось диктовать оценки по телефону.
С непривычки он время от времени делает ошибки, называя не то число. Для исправления ошибок
председатель имеет возможность сказать «отмена», что обозначает, что последнее из названных, но
ещё не отменённых чисел было названо неверно. Разумеется, слово «отмена» может быть сказано
несколько раз подряд (но не больше, чем на тот момент было названо чисел).
Для проверки того, что сообщение передано правильно, председатель жюри подсчитал сумму всех
баллов и просит Вас, в порядке помощи оргкомитету, посчитать сумму всех баллов по продиктованной им последовательности чисел и команд отмены.
Input
В первой строке входа задано одно целое число k — суммарное количество действий — названных
председателем оценок и команд отмены. (1 ≤ K ≤ 105 ). i-я из последующих k строк содержит
одно целое неотрицательное число xi , не превосходящее 100. Если это число положительно, то i-м
действием председатель продиктовал это число, если равно нулю, то i-м действием была команда
отмены.
Output
Выведите одно целое число — сумму всех выставленных оценок.
Example
standard input
10
1
3
5
4
0
0
10
0
0
3
standard output
4
Page 2 of 6
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem C. Неквадраты
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 секунды
512 мебибайт
Задано целое положительное число n. Выясните, может ли оно быть представлено в виде произведения k целых чисел, ни одно из которых не является квадратом целого числа.
Input
Первая строка ввода содержит целое число t (1 ≤ t ≤ 10) — количество тестовых случаев. Каждая из последующих t строк содержит один тестовый случай, состоящий из двух целых чисел n
(1 ≤ n ≤ 1 000 000 000) и k (2 ≤ k ≤ 50).
Output
Для каждого тестового случая выведите в отдельной строке слово «YES» в том случае, если существует такой набор из k целых чисел ai , что n = a1 · a2 · · · ak и ни одно из ai не является квадратом
целого числа, и слово «NO» в противном случае.
Examples
standard input
2
1 3
7 2
standard output
NO
YES
Page 3 of 6
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem D. Бесконечный процесс
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 секунды
512 мебибайт
Рассмотрим отрезок, на концах которого записаны единицы. Далее будем совершать следующую
процедуру: для каждого отрезка, на концах которого записаны числа a и b и внутри которого
отсутствуют числа, запишем строго в его середине число a + b и этой срединной точкой разобъем
этот отрезок на два отрезка [a, a + b] и [a + b, b].
То есть из начального отрезка 1..1 мы получим 1..2..1, затем будут порождаться отрезки
1..3..2..3..1, 1..4..3..5..2..5..3..4..1 и так далее до бесконечности.
Сколько раз на исходном отрезке будет записано натуральное число N ?
Input
Входной файл содержит одно целое число N (1 ≤ N ≤ 109 ).
Output
Выведите одно целое число — сколько раз будет в итоге записано натуральное число N .
Example
standard input
4
standard output
2
Page 4 of 6
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem E. Двоичное умножение
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 seconds
256 mebibytes
Ещё со школы все мы помним правила умножения в столбик. Ваша задача — написать программу,
которая умножает двоичные числа столбиком.
Input
Первая строка входа содержит одно целое число T — количество тестовых примеров (1 ≤ T ≤ 150).
Каждая из последующих N строк содержит два целых числа в двоичном представлении без ведущих
нулей. Длина каждого из чисел не превосходит 30 цифр.
Output
Для каждого тестового примера выведите строку с текстом “Test N”, где N — номер теста. После
чего выведите запись умножения в соответствии с тестовым примером. В качестве разделителей
между тестами используйте пустую строку.
Examples
standard input
4
11 11
111 10
10 111
1010 0
standard output
Test 1
11
11
-11
11
---1001
Test 2
111
10
--000
111
---1110
Test 3
10
111
--10
10
10
---1110
Test 4
1010
0
---0000
---0
Page 5 of 6
Летняя Олимпиадная Школа 2015
Олимпиада по информатике — разбор задач, Воскресенье, 26 июля 2015 года
Problem F. Экспериментальная физика
Input file:
Output file:
Time limit:
Memory limit:
standard input
standard output
2 секунды
512 мебибайт
Во время экспериментальных работ по механике участники марсианской Летней олимпиадной школы проводили опыты с идеальным бильярдом. Ваша задача — написать программу, проверяющую
правильность полученных отчётов.
На прямоугольном бильярдном столе в точке A находится единственный шар. По шару наносится
удар таким образом, что шар до первого соударения со стенкой проходит через точку B. Требуется проверить, пройдёт ли шар, возможно, после некоторого количества соударений со стенками
бильярда через точку C. Шар считать идеально упругим, линейными размерами шара и действием
силы трения пренебречь. При попадании шара в угол его вектор движения меняет знак.
Input
Первая строка входного файла содержит два целых числа x1 и y1 — координаты правой верхней
вершины стола (1 ≤ x1 , y1 ≤ 104 ). Левая нижняя вершина стола находится в начале координат.
Вторая строка содержит два целых числа xa и ya (0 ≤ xa ≤ x1 , 0 ≤ ya ≤ y1 ) — координаты шара.
Третья строка содержит два целых числа xb и yb (0 ≤ xb ≤ x1 , 0 ≤ yb ≤ y1 ) — координаты точки B.
Четвёртая строка содержит два целых числа xc и yc (0 ≤ xc ≤ x1 , 0 ≤ yc ≤ y1 ) — координаты точки
C. Никакие две из трёх точек A, B и C не совпадают.
Output
Выведите “YES”, если после некоторого (возможно, нулевого) количества соударений со стенками
шар пройдёт через точку C и “NO” в противном случае.
Example
standard input
10 10
2 1
5 8
6 3
2 2
1 0
0 1
1 1
standard output
YES
NO
Page 6 of 6
Download