ВВОД-ВЫВОД ВО ВСЕХ ЗАДАЧАХ СТАНДАРТНЫЙ, ТО ЕСТЬ С КЛАВИАТУРЫ И НА ЭКРАН! НЕ НУЖНО ИСПОЛЬЗОВАТЬ ФАЙЛОВЫЙ ВВОД-ВЫВОД! Ограничение по времени на все задачи, кроме 04 – 0.5 сек, по памяти – 64 Mb. На задачу 04 ограничение по времени – 2 сек. 01. Треугольная полка (50 баллов) Книжная полка имеет треугольную форму: на ее верхней полке помещается одна книга, на второй — две, на третьей — три и т.д. (на i-ой помещается i книг). Все книги занумерованы по полкам сверху вниз, а на одной полке — слева направо. То есть единственная книга на верхней полке имеет номер 1, на второй полке — книги 2 и 3, а на третьей — 4, 5 и 6. Задан номер книги n, необходимо вывести номер полки, на которой она находится. Входные данные В единственной строке входных данных записано целое число n (1 ≤ n ≤ 108). Выходные данные Выведите номер полки, на которой находится книга с номером n. Пример(ы) ввод вывод 4 3 ввод вывод 12 5 02. Склад (50 баллов) На склад поступило N лыж. Их длины A1, A2, ... ,AN. Требуется узнать какое наибольшее количество комплектов на продажу можно составить, если в комплект обязательно входит 2 лыжи и сумма их длин должна быть равна строго Q. Входные данные В первой строке записаны натуральные числа N (1 <= N <= 10000) и Q (1 <= Q <= 2000). Далее следует N чисел A1, A2, ..., AN (все длины - натуральные, не превосходящие 1000). Выходные данные Выведите единственное число - наибольшее количество комплектов на продажу, которые возможно составить из данного набора. Пример Ввод 7 5 1 2 1 4 3 1 3 Вывод 2 03. Декодирование по алгоритму Хаффмана (50 баллов) Рассмотрим алгоритм кодирования по Хаффману. Каждый символ представляется последовательностью символов 0 и 1, причем никакая последовательность не является началом другой. Закодированный текст представляет собой сконкатенированные (записанные друг за другом) последовательности букв. Например, если e=001, t=01, x=000, то text=0100100001. Вам даны коды некоторых букв латинского алфавита, а также текст в закодированном виде. Ваша задача — раскодировать его. Гарантируется, что текст составлен корректно. Входные данные Первая строка входного файла содержит единстенное число n — количество букв, используемых в тексте. Далее в n строках находятся пары из символа и последовательности, его кодирующей. Все символы — это строчные латинские буквы. Кодирующая последовательность — строка из символов 0 и 1, длиной не более 30 символов. Символ и код разделены одним пробелом. Последняя строка входных данных содержит закодированный текст длиной не более 1000 символов. Выходные данные Выведите полученный после декодирования текст. Пример(ы) ввод вывод 3 e 001 t 01 x 000 0100100001 text ввод вывод 7 a 100 h 101 t 1101 u 1111 p 1110 w 0 s 1100 01011001101110011111110 whatsup 04. Железная дорога (г. Тарасов) (50 баллов) Студентам Железнодорожного Университета дали задание подвести некоторую статистику движения поездов. Самый сообразительный студент Андрей вооружился расписанием поездов, в котором указаны все поезда, проходящие мимо станции Тарасов-1 (к сожалению, ни один поезд на этой станции не останавливается). Для каждого поезда указано два числа время начала его движения мимо станции и общее время движения мимо станции Тарасов-1 (поезда бывают очень длинными). Так как весь день Андрей занят учебой, то у него есть только M минут свободного времени, чтобы провести их на станции. Помогите Андрею выбрать такой момент времени, придя в который на станцию он сможет увидеть наибольшее число поездов. Заметим, что если Андрей приходит ровно в тот момент, когда поезд покидает станцию или уходит в тот момент, когда поезд прибывает на станцию, он успевает увидеть поезд. Входные данные В первой строке входного файла записано два целых числа N и M (0<=N<=1000; 0<=M<=100000), где N- количество поездов в расписании, а M- количество свободных минут Андрея. Далее в N строках даны описания поездов. Каждое описание - это пара чисел, где первое число в паре - это минута, когда поезд приходит на станцию, а второе - время движения поезда мимо станции в минутах. Каждое из чисел натуральное, не превосходящее 100000. Выходные данные Выведите единственное число - время в минутах, когда Андрею надо подойти к станции, чтобы увидеть как можно больше поездов. Если решений может быть несколько, то выведите любое из них. Пример Ввод 3 1 1 3 3 1 2 1 Вывод 2 05. Печатный пиар (50 баллов) Маленькому пиар-агентству поступил заказ на изготовление крупной партии агитационных материалов. Требуется изготовить и доставить N листовок. У агентства есть всего один принтер, но на нем можно распечатать любую из листовок. Листовки могут быть разные, поэтому на их распечатку может потребоваться различное время, на распечатку i-й листовки требуется Ti минут. Сразу после того, как листовка распечатана, ее требуется доставить адресату. В распоряжении агентства имеется неограниченное число курьеров, поэтому сразу, как только листовка распечатана, курьер везет ее к адресату. Адресаты у листовок различны, на доставку i-й листовки требуется Li минут. Вас наняли рассчитать минимально возможное время, которое пройдет от начала печати до доставки последней листовки, с учетом того, что печатать листовки можно в произвольном порядке. Входные данные В первой строчке входного файла записано целое число N (1 <= N <= 100). Вторая строка содержит N целых чисел Ti (1 <= i <= N). Третья строка содержит N целых чисел Li (1 <= i <= N). Известно, что 1 <= Ti, Li <= 1000. Числа во второй и третьей строках разделены одним или несколькими пробелами. Выходные данные В выходной файл выведите единственное число - ответ на поставленную задачу. Пример Ввод 2 2 1 2 1 Вывод 4 06. Идентификация символов (50 баллов) Есть ч/б монитор размером N x M пикселей. На нем могут выводиться K символов (каждый символ характеризуется некоторым ненулевым количеством черных пикселей на экране). Необходимо найти минимальное количество пикселей, по которым можно однозначно восстановить символ. Входные данные В первой строке файла записаны числа N, M и K (1 <= N, M <= 10, 2 <= K <= 6), разделенные пробелами. В следующих строках записаны K блоков по N строк, в каждой строке по M цифр - описание символов. Блоки разделены пустой строкой. '1' означает, что при выводе этого символа соответствующий пиксель черный, '0' означает, что белый. Гарантируется, что все символы уникальны. Выходные данные В первую строку выведите минимальное количество пикселей, по которым можно однозначно восстановить символ. Далее выведите N строк по M цифр: '1' означает, что соответствующий пиксель входит в искомый набор, '0' означает, что не входит. Если решений несколько выведите любое. Пример Ввод 2 4 3 0000 0001 1000 0001 1111 1001 Вывод 2 1000 1000