Программист нанотехнологов Ограничение времени 1 секунда
Ограничение памяти 64.0 Мб
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Программист ученым-нанотехнологам. Он увлекся и работал всю ночь над результатами испытаний излучателей частиц. У него был бумажный список оценок, выставленных экспертами по результатам испытаний. К сожалению, программист любит пить кофе на рабочем месте. И список с результатами сильно пострадали, когда он под утро заснул и опрокинул чашку на стол. Теперь названия излучателей разобрать невозможно. Остались только полученные каждым излучателем оценки экспертов. Расположены результаты излучателей в том порядке, в котором они испытывались.
Некоторый излучатель интересует ученых (назовем его «Оптимум»). Программист знает, что количество очков Оптимума заканчивается на 5, а результат получившего максимальную оценку излучателя указан в списке где-то выше данных Оптимума. Также известно, что сразу после оценки Оптимума записана оценка некоторого нестабильно работающего излучателя, которая меньше оценки Оптимума. Теперь перед программистом поставлена задача определить, какое самое высокое место по оценкам экспертов мог занять Оптимум в этом испытании.
Будем считать, что излучатель занял k-е место, если ровно (k – 1) излучателей получили строго большую оценку, чем он. При этом максимальную оценку экспертов могли получить w излучателей. При этом они все будут считаться лучшими.
Требуется программисту и написать программу, которая по заданным результатам испытаний определяет, какое самое высокое место мог занять Оптимум по оценкам экспертов.
Формат ввода
Первая строка входного файла содержит целое число n — количество излучателей, участвовавших в испытаниях (3 ≤ n ≤ 100 000). Вторая строка входного файла содержит n положительных целых чисел, каждое из которых не превышает 1000, — очки, полученные излучателями, которые приведенные в том порядке, в котором излучатели испытывались.
Формат вывода
В выходном файле должно содержаться одно целое число — самое высокое место, которое мог занять Оптимум. Если не существует ни одного излучателя, который удовлетворяет, описанным выше условиям, выведите в выходной файл число 0.
Пример 1
Ввод Вывод
7
10 20 15 10 30 5 1 6
Пример 2
Ввод Вывод
3
15 15 10 1
Пример 3
Ввод Вывод
3
10 15 20 0
Структура - порядок объединения элементов, составляющих систему.
Отношение - взаимная связь, в которой находятся какие-либо объекты
Файл - информация, хранящаяся в долговременной памяти как единое целое и обозначенная именем.
Система - целое, состоящее из частей, взаимосвязанных между собой.
Информатика - наука, изучающая закономерности протекания процессов передачи, хранения и обработки информации в природе, обществе, технике, а также автоматизации этих процессов с компьютера.
Множество - совокупность, набор, коллекция некоторых объектов.
Классификация - деление множества на классы.
Объект - любая часть окружающей действительности, воспринимаемая человеком как единое целое.
древнейших шифров разработал Полибий (III ст. к н.е.) - греческий историк, полководец, государственный деятель. В шифре, который назвали “квадрат Полибия”, каждая буква алфавита (или пара букв, соответствующих близким по произношению звукам) содержится в таблице. Во время кодирования сообщения каждая буква заменяется парой чисел номерами столбца и строки таблицы, на пересечении которых она размещена. Для кодирования сообщений на английском языке может быть использована таблица.
Слово CODE в закодированном виде 31 43 41 51
Входные данные:
В первой строке файла polybius.dat записано целое число N (0<N<100). В следующих N строках через пробел записано целое число L - длина слова (0<L<256) и шифры букв с данной таблицы Полибия.
Выходные данные:
файл polybius.sol нужно вывести декодируемые слова заглавными латинскими буквами, каждое в отдельной строке в той же последовательности, как они записаны в файле polybius.dat.
Примеры
Входные данные Выходные данные
2
4 22 43 43 41
4 13 54 31 52 GOOD
LUCK
Задача B. "День рождения"
Пес Шарик любит рыбные котлеты. На свой День рождения он решил всех угостить друзей рыбными котлетами. Пес посчитал, что ему нужно N рыбин. (0<N<1000). Пес - рыбак со стажем, поэтому каждый день он совершенствуется и ловит на S (0<S<N) рыбин больше, чем в предыдущий день. В первый день пес традиционно ловит K (0<K<N) рыбин. Но кот Матроскин любит живую рыбу и всегда съедает половину улова за день. Если количество рыб в улове за день нечетное, тогда кот съедает меньше на одну рыбину чем оставляет. Зная привычку кота, пес Шарик пытается определить за сколько дней до дня рождения ему нужно отправиться на рыбалку, чтобы наловить нужное количество рыбин и не поссориться с котом - главным гостем на его дне рождения.
Входные данные:
В стандартном входном потоке через пробел записано три целых числа N, S, K.
Выходные данные:
В стандартный выходной поток вывести наименьшее число дней, которые нужны псу, чтобы наловить необходимое количество рыбин и не поссориться с котом.
Примеры
Входные данные Выходные данные
20 2 3 5
Задача С. "Сервер"
На сервере хранится информация о работе клиентов в сети. Информация записывается в следующем виде: первые четыре числа указывают адрес с которой обращается программа-клиент, а следующие четыре - по какому адресу обращается. Нужно установить адрес самого активного клиента и адреса всех ресурсов к которым он обращался. Гарантированно, активный только один.
Входные данные:
В стандартном входном потоке в первой строке записано целое число N (0<N<1000) в следующих N строках по восемь целых чисел, значение которых от 0 до 255.
Выходные данные:
В стандартный выходной поток в первой строке нужно вывести четыре числа через точку (адрес самого активного клиента) и в следующей строке подряд 15 символов "-", в следующих строках - количество обращений, пробел, символ "-", пробел и адрес. Адреса посещение выводить по убыванию количества посещений, а если одинаковое количество посещений нужно выводить в порядке возрастания адреса.
Примеры
Входные данные Выходные
2 - 46.63.83.191
1 - 46.63.83.192
1 - 46.63.83.193
и их количество возрастает на 1 с уменьшением от единственного крупнейшего корабля и заканчивая одноклеточными кораблями. Например, если P=4, тогда количество кораблей 10. 1 корабль – 4 клетки, 2 корабля по 3 клетки, 3 корабля по 2 клетки 4 корабля по 1 клетке.
Зная координаты расположения кораблей и шаг N-1 нужно рассчитать наименьшее количество ходов, которая позволит поразить все корабли хотя бы один раз. Шаг выстрелов начинается от левого верхнего угла игрового поля – ячейки с координатами 1 1, то есть ячейки 1 N-1 . При достижении края игрового поля шаги отсчитываются пробел записаны два целых числа N, P.
В следующих строках через пробел записано по четыре целых числа – координаты расположения кораблей, координаты его начала и конца (x1<=x2, y1<=y2).
Выходные данные:
файл battleship.sol нужно вывести единственное число – количество выстрелов.
Примеры
Входные данные Выходные данн
Дано прямоугольную таблицу размером N на M (0<N, M<50). В некоторых ячейках таблицы записано число 0, а в некоторых -1. 0 – ячейка свободна и в нее можно переместиться, -1 – ячейка с препятствием и телепортироваться в эту ячейку нельзя. Ваша задача-найти наименьшее число шагов между указанными ячейками. За один шаг можно двигаться только в соседние горизонтальные или вертикальные ячейки, не допускается диагональный движение. Нумерация строк и столбцов таблицы начинается с 1.
Входные данные:
В стандартном входном потоке в первой строке через пробел вводятся два числа N M. Во второй строке через пробел записаны координаты начальной и конечной ячеек. В следующих N строках через пробел записано по M чисел 0 или -1.
Выходные данные:
В стандартный выходной поток вывести наименьшее количество шагов для перемещения из одной ячейки в другую. Если пути не существует, необходимо вывести слово No