Саша – страстный любитель компьютерных игр. Недавно он купил новейшую игру «Математическое казино». В этом казино играют на виртуальные деньги – мани, а каждый раунд игры состоит в решении интереснейшей задачи по математике. Перед началом игры у Саши ноль мани на счету, но программа в любой момент предоставляет ему неограниченный кредит.
Перед началом каждого раунда программа сообщает, на какую тему будет очередная математическая задача и Саша делает ставку на то, что он ее решит. В самом начале игры Саша всегда делает ставку в 1 мани. Если Саша решает задачу правильно, то он выигрывает раунд и ставка плюсуется к его счету. Если он допускает ошибку в решении, то он проигрывает, и ставка вычитается из его счета. Саша очень самоуверенный и любое неверное решение задачи считает чистой случайностью, поэтому после проигрыша Саша всегда увеличивает ставку в 2 раза. Однако после выигрыша, дабы не вспугнуть удачу, Саша всегда снижает ставку до 1 мани. Наконец, одолев очередную задачу, и выиграв этот раунд, Саша решает закончить игру.
Например, пусть Саша правильно решил первую задачу (выиграл начальную ставку в 1 мани, поставил на следующий раунд 1 мани), затем неправильно решил вторую задачу (проиграл 1 мани и удвоил ставку), неправильно решил и третью задачу (проиграл 2 мани и снова удвоил ставку), но четвертую задачку ему все-таки удалось решить правильно (выиграл 4 мани, сбросил ставку на 1 мани). Затем он правильно решает и пятую задачу (выиграл 1 мани) и заканчивает игру. Итого на его счету после игры: 1 – 1 – 2 + 4 + 1 = 3 мани.
Требуется написать программу, которая по имеющейся записи хронологии игры определяет, какое количество мани выиграл или проиграл Саша.
Первая строка содержит целое число N (0 < N ≤ 2000) — количество задач, которое решал Саша. Во второй строке располагаются N чисел 0 или 1 через пробел: 0, если Саша решил очередную задачку неправильно, и 1 – если правильно.
Выведите одно целое число — выигрыш или проигрыш Саши (выигрыш определяется положительным числом, а проигрыш – отрицательным).
5 1 1 0 1 1
4
Рассмотрим прямоугольник размером X × Y, из середины которого вырезали прямоугольник размером (X – 2) × (Y – 2). Назовем такую геометрическую фигуру рамкой размера X × Y. На рисунке 1 изображена рамка размера 5 × 6.
Рисунок 1. Рамка 5 × 6 |
Рисунок 2. Рамка 5 × 6, замощенная плитками 3 × 1 |
Предположим, что у нас имеется неограниченный запас плиток размера A × 1. Рассмотрим следующую задачу: можно ли полностью замостить рамку размера X × Y такими плитками (плитки разрешается поворачивать на 90 градусов). Например, рамку 5 × 6 можно полностью замостить плитками размера 3 × 1 (один из способов показан на рисунке 2), а плитками размера 4 × 1 – нельзя.
Первая строка входного файла содержит два целых числа – X и Y (3 ≤ X, Y, ≤ 106). Вторая строка содержит число N – количество видов плиток, которые следует проанализировать (1 ≤ N ≤ 1000). Третья строка содержит N натуральных чисел, не превышающих 106. Обозначим i-ое число третьей строки входного файла за Ai.
Выведите в выходной файл N строк, i-ая строка должна содержать слово yes, если можно замостить рамку размера X × Y плитками размера Ai × 1, и no в противном случае.
5 6 2 3 4
yes no
Размеры шкафа A × B × C. Возможно ли его пронести через дверной проем размерами X × Y?
Даны целые числа A, B, C, X, Y (1 ≤ A, B, C, X, Y ≤ 100).
Выходной файл должен содержать строку "YES" , если пронести возможно, "NO" – если нельзя.
4 5 6 10 20
YES
4 5 6 3 4
NO
6 5 4 4 5
YES
Сергей скоро заканчивает обучение в институте. Уже написана пояснительная записка к выпускной квалификационной работе и оформлены все документы. Теперь Сергей задумался, не может ли он получить по результатам обучения диплом с отличием. В официальных документах он нашел следующее: “Студент получает диплом с отличием, если количество оценок “хорошо” не превышает 25% (в исключительных случаях допускается одна оценка “Удовлетворительно”. Более формально, студент получает диплом с отличием, если у него не более одной оценки “удовлетворительно”, а количество оценок “хорошо” и “удовлетворительно” не превышает 25% от общего количества оценок.
Изучив свою зачетную книжку, Сергей составил список всех оценок, которые он получил за годы обучения в институте. Список получился достаточно большим - оценок оказалось n штук. Напишите программу, которая по этому списку определит, какой диплом получит
Сергей в соответствии с указанным выше правилом.
Первая строка входного файла содержит число n (1 ≤ n ≤ 100000). Вторая строка входного файла содержит n чисел - оценки Сергея. Числом 5 обозначается оценка “отлично”, числом 4 - оценка “хорошо”, числом 3 - оценка “удовлетворительно”. Каждое число во второй строке равно либо 3, либо 4, либо 5.
В выходной файл выведите “Degree with honors”, если Сергей получает диплом с отличием, и “Ordinary degree” иначе.
5 5 5 5 5 4
Degree with honors
4 3 3 4 5
Ordinary degree
Всем известен, так называемый, принцип Дирихле, который формулируется следующим образом:
Предположим, что некоторое число кроликов рассажены в клетках. Если число кроликов больше, чем число клеток, то хотя бы в одной из клеток будет больше одного кролика.
В данной задаче мы рассмотрим более общий случай этого классического математического факта. Пусть есть n клеток и m зайцев, которых рассадили по этим клеткам. Вам требуется расcчитать максимальное количество зайцев, которое гарантированно окажется в одной клетке.
В первой строке входного файла записаны два натуральных числа n и m. (1 ≤ n, m ≤ 109).
В выходной файл выведите ответ на задачу.
2 3
2