Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
В одном городе есть железная дорога, на которой N станций расположены в ряд. Крайние станции называются Центр и Пригород. По этой железной дороге ходит одна электричка в обоих направлениях. Утром электричка начинает своё движение из Центра и идёт в Пригород со всеми остановками. Затем она идёт обратно в Центр, тоже со всеми остановками. Цикл "Центр — Пригород — Центр" электричка совершает K раз и вечером возвращается в Центр.
Расписание электричек поменялось, и нужно срочно развесить новое расписание на всех станциях. Для этого требуется отправить хотя бы по одному сотруднику железной дороги на каждую станцию. Нужно определить минимальное количество сотрудников, которое необходимо, чтобы развесить новые расписания на всех станциях за один день.
Сотрудники перемещаются между станциями на электричках. Если сотрудник вышел на какой-то станции, чтобы повесить расписание, то он уже не успеет сесть на электричку, из которой он вышел. Исключение составляет станция Пригород: на ней электричка будет стоять достаточно долго, прежде чем поехать обратно в Центр, так что сотрудник успеет выйти из электрички, повесить расписание, а затем сесть на эту же электричку и поехать на ней обратно. На станции Центр вывешивать расписание не нужно. В начале рабочего дня все сотрудники находятся на станции Центр, и вечером они должны вернуться на станцию Центр.
Входной файл содержит целые числа N K.
Требуется вывести в выходной файл единственное целое число — минимальное количество сотрудников.
2 ≤ N ≤ 100
1 ≤ K ≤ 25
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Однажды Марфа Геннадьевна проснулась взволнованной. "Надо не забыть перевести часы на час назад", — подумала она. У Марфы Геннадьевны было двое часов. Одни механические, другие электронные. Электронные часы переводят время на час назад автоматически, механические — нет.
В определённые часы Марфа Геннадьевна смотрела на те и другие часы и записывала, сколько часов они показывали. Теперь Марфа Геннадьевна заинтересовалась, во сколько электронные часы перевели время.
Марфа Геннадьевна обратилась к вам за помощью. Напишите программу, принимающую на вход записи Марфы Геннадьевны и вычисляющую все возможные моменты времени, когда электронные часы могли перевести время на час назад. Известно, что электронные часы перевели время ровно один раз на час назад в 1, 2, ..., 22 или 23 часа.
Входной файл содержит целое число N — количество записей Марфы Геннадьевны. Далее следуют N пар чисел ai bi, где ai — количество часов, которое показывают механические часы, bi — количество часов, которое показывают электронные часы.
Требуется вывести в выходной файл целые числа, разделённые пробелами — все возможные моменты времени (часы), когда электронные часы могли перевести время, в порядке возрастания.
1 ≤ N ≤ 24
0 ≤ ai ≤ 23; 0 ≤ bi ≤ 22
a1 < a2 < … < aN; b1 ≤ b2 ≤ … ≤ bN
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Этим летом Марфа Геннадьевна побывала в Турции. Там она участвовала в усложнённой игре в напёрстки. Правила игры таковы. У ведущего есть три напёрстка, под каждым из которых находится шарик, то есть всего есть три шарика: маленький, средний и большой. Ведущий может несколько раз менять местами соседние напёрстки, после чего игроку предлагается отгадать, под каким напёрстком какой шарик находится.
Придя в гостиничный номер, Марфа Геннадьевна решила изучить эту игру. Её заинтересовал вопрос, за какое наименьшее количество перекладываний соседних напёрстков можно из одной комбинации шариков получить другую.
Напишите программу, принимающую на вход две комбинации шариков и вычисляющую, сколько раз (как минимум) нужно поменять местами соседние напёрстки, чтобы из первой комбинации получить вторую.
Первая и вторая строки входного файла содержат по 3 целых числа от 1 до 3. Число 1 означает маленький шарик, 2 — средний, 3 — большой. В каждой строке все числа различны.
Требуется вывести в выходной файл единственное целое число — ответ в задаче.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
На перемене школьник Вася решил немного отдохнуть и стал чертить в черновике круговую волну (не путать с синусоидой). Он начертил прямоугольную систему координат, затем взял несколько одинаковых монеток радиусом 1 см и положил их друг за другом так, чтобы их центры располагались на оси абсцисс, а первая монетка касалась оси ординат. Потом Вася стал обводить монетки, как показано на рисунке — сначала сверху, потом снизу, потом опять сверху, снизу и т.д. Но тут прозвенел звонок на урок. К счастью, Вася успел засечь время: он рисовал волну t секунд, при этом Вася чертил со скоростью 1 см/с, то есть за 1 секунду он рисовал дугу длиной 1 см.
Напишите программу, принимающую на вход число t и вычисляющую координаты конечной точки волны.
Входной файл содержит вещественное число t.
Требуется вывести в выходной файл два вещественных числа x y — координаты конечной точки волны в см с точностью до 3-х знаков после запятой.
0.1 ≤ t ≤ 300
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Однажды Марфа Геннадьевна ехала вместе с Аполлинарием Матвеевичем на поезде. К ним подошёл проводник и предложил кипяток. Пассажиры переглянулись: никто не хотел пить слишком горячий чай. Проводник сказал, что у него есть холодная вода в отдельной ёмкости, но холодной и горячей воды не очень много.
Теперь перед Марфой Геннадьевной и Аполлинарием Матвеевичем стоит непростая задача. У проводника имеется 2 сосуда с холодной и горячей водой. В первом сосуде есть A л холодной воды при температуре T1 градусов. Во втором сосуде есть B л горячей воды при температуре T2 градусов. Требуется перелить определённое количество воды из первого и второго сосуда в третий сосуд так, чтобы в третьем сосуде вода была при температуре от m до M градусов и её было как можно больше.
Если из 1-го сосуда налить x л, а из 2-го — y л, то температура воды в 3-м сосуде будет усреднена и равна T1 x + T2 yx + y.
Входной файл содержит целые числа A B T1 T2 m M.
Требуется вывести в выходной файл вещественное число — максимальное количество воды в литрах, которое можно получить в 3-м сосуде при температуре от m до M градусов, с точностью до 4-х знаков после запятой.
1 ≤ A, B ≤ 20
0 ≤ T1 ≤ m ≤ M ≤ T2 ≤ 100
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | A. Klenin | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
C---- language was designed specifically for students who failed standard course of Compiler Programming. C---- program is a list of statements. Each statement is one of:
Each variable is declared at most once in the block, but variables with same name may be declared in different blocks. It that case, name refers to the variable declared in the nearest enclosing block. Note that variables may be defined in the middle of the block.
The program is guaranteed to be correct — all blocks are properly balanced, variables are referenced only after declaration, variables are always initialized before reading, etc. Program contains at least one print statement.
Your program must execute a given C---- program.
First line of input file contains integer N. Following N lines contain one C---- statement each.
Output file must contain a sequence of integers — one integer for each print statement.
3 ≤ N ≤ 1000
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Author: | I. Tuphanov | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
FEFU computer scientists use a duplication method to detect errors in network data transfer. Each bit of data is duplicated. The duplicate follows the original bit. Each byte therefore is transferred as a message of two bytes. The first byte of the message encodes high bits of the original byte, the second byte encodes low bits.
For example, a byte 67 is encoded as follows:
Scientists received two bytes. Now they need to find out what the original byte was.
Input file contains two integers designating two received bytes.
Output file must contain a single integer — the original byte, or −1 if there was an error during transfer.
Both input integers are in the range from 0 to 255.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Author: | A. Klenin | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
A professor of Fences, Entrances and Frames University has developed a new Fence Inclination theory. According to that theory, a fence is modeled as a sequence of planks. Every plank is either slanted right, represented by character / (ASCII 47), or left, represented by character \ (ASCII 92). For example, a fence of three right-slanted planks followed by two left-slanted planks would be represented by string ///\\.
Fence Inclination theory predicts that plank slants change in steps.
On a single step, the fence is first subdivided into a minimal possible number of plank groups. Each group consists of R ≥ 0 right-slanted planks followed by L ≥ 0 left-slanted planks. In the sample 1 below an initial state is subdivided into 3 groups, while in the sample 2 — into 4 groups.
Next, for every group: if R > L, all planks in the group become right-slanted, if R < L, all planks in the group become left-slanted, if R = L, plank of the group remain unchanged. So after the first step the fence in sample 1 will change into the state //////\\\\.
Steps are repeated until the fence state stops changing.
You program must, given the the initial fence state, output its final state after the changes stop.
Input file contains a single string of / and \ characters — representation of the initial fence state.
Output file must contain a single string of / and \ characters — representation of the final fence state.
The length of the input string is between 1 and 1001 characters.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Аполлинарий Матвеевич — старый, седой библиотекарь. Сегодня он в очень хорошем настроении, потому что библиотеке подарили компьютер.
Помощники Аполлинария Матвеевича составили базу данных книг библиотеки. Все книги, хранящиеся в библиотеке, разбиты по областям знаний, и в каждой книге затронут ряд тем. При этом и каждая тема, и каждая книга могут принадлежать только одной области знаний. В базе данных хранится список областей знаний и содержится информация о книгах, относящихся к каждой области знаний. Кроме того, для каждой книги составлен список тем, затронутых в ней.
Однажды в библиотеку зашёл читатель. Он дал Аполлинарию Матвеевичу список тем и попросил его подобрать книги по этим темам. Аполлинарий Матвеевич обрадовался: у него есть база данных! Но стоп: как найти в базе данных нужную информацию? Для этого нужна программа.
Помогите Аполлинарию Матвеевичу. Напишите программу, позволяющую определить, к каким областям относятся заданные темы и в каких книгах можно найти информацию по этим темам.
Первая строка входного файла содержит целое число N — количество областей знаний.
Далее для каждой области знаний входной файл содержит название области знаний, за которым следует количество книг, относящихся к данной области знаний.
Далее для каждой книги входной файл содержит название книги, за которым следует количество тем, затронутых в данной книге. Далее следует список тем.
Далее входной файл содержит целое число M — количество тем в списке, подготовленном читателем. Далее следует список тем.
Для каждой темы требуется вывести строку "Topic: название темы". Далее должна следовать строка "Subject: название области знаний". Далее должна следовать строка "Books:" (без пробелов). Далее должен следовать список книг в том порядке, в котором они перечислены во входном файле.
1 ≤ N ≤ 50
1 ≤ M ≤ 10
Количество книг, относящихся к определённой области знаний, от 1 до 100.
Количество тем, затронутых в определённой книге, от 1 до 10.
Все названия во входном файле имеют длину от 1 до 50 символов и состоят из маленьких латинских букв.
Входные данные таковы, что каждая тема из списка, подготовленного читателем, затронута хотя бы в одной книге.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | VI Всероссийская командная олимпиада школьников по программированию | Ограничение времени: | 2 сек | |
Входной файл: | numbers.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | numbers.out |
При расследовании дорожно-транспортных происшествий часто возникают проблемы с розыском автомобилей, водители которых покинули место происшествия.
Получение свидетельских показаний — непростая работа. Ситуация осложняется тем, что очень часто свидетели могут только приблизительно вспомнить номер автомобиля. При этом с большой вероятностью опрашиваемый может перепутать порядок цифр или букв в номере.
По полученному от свидетеля происшествия номеру, подсчитайте, сколько различных номеров может получиться из него перестановкой букв и/или цифр, а также выведите все такие номера.
Напомним, что автомобильные номера в России состоят из трех букв и трех цифр, упорядоченных следующим образом: буква, три цифры, затем две буквы. Фрагмент номера, который идентифицирует регион, в котором зарегистрирован автомобиль, мы будем игнорировать.
В номере могут использоваться следующие буквы: "A", "B", "C", "E", "H", "K", "M", "O", "P", "T", "X", "Y" (эти буквы имеют схожие по написанию аналоги как в русском, так и в латинском алфавите). В этой задаче во входном файле будут использоваться буквы латинского алфавита.
Входной файл содержит одну строку, которая представляет собой корректный автомобильный номер.
№ | Входной файл (numbers.in ) |
Выходной файл (numbers.out ) |
---|---|---|
1 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Имеется два компьютера с одинаковой производительностью и N программ, которые необходимо выполнить. Известно, что i-я программа требует для выполнения на любом из компьютеров Ti секунд. Программы можно выполнять в любом порядке, но прерывать однажды запущенную программу нельзя. Сразу после окончания одной программы можно запускать следующую.
Требуется распределить программы между компьютерами таким образом, чтобы время на их выполнение оказалось наименьшим. Например, программы длительностью 7, 10, 3, 5, 6 можно выполнить за 16 секунд, если на первом компьютере выполнять вторую и четвертую программу, а на втором — остальные три.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | О. Ларькина | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
На день святого Валентина Дима решил сделать подарить своей девушке Лене открытку с сердечками. Лена учится в ДВФУ на программиста, поэтому Диме хотелось сделать программистскую открытку.
Дима придумал дизайн открытки, и хочет написать программу, которая выводила бы её изображение. Помогите ему.
Изображение открытки представляет собой прямоугольную таблицу, состоящую из символов "." (ASCII 46), "/" (ASCII 47), "V" (ASCII 86), "\" (ASCII 92), "^" (ASCII 94). На открытке изображено n сердец. Каждое сердце задаётся координатами центра x y и размером d. Координата x отсчитывается по горизонтали слева направо, а координата y — по вертикали сверху вниз.
Изображение сердца состоит из шести наклонных линий, состоящих из символов "/" и "\". Две линии, образующие нижний контур сердца, имеют длину по d символов, две линии, образующие внешнюю часть верхнего контура, имеют длину по ⌊(d + 1) / 2⌋ символов, а две линии, образующие внутреннюю часть верхнего контура, имеют длину по ⌊(d − 1) / 2⌋ символов.
Центр и нижняя точка сердца обозначены символами "V". Если d чётно, то две верхние точки сердца обозначены символами "^".
Изображение открытки должно иметь минимально возможный размер, охватывающий изображения всех заданных сердец. Все позиции, не занятые изображениями сердец, должны содержать символ ".".
Сердца рисуются в порядке перечисления во входном файле, последующие изображения перекрывают предыдущие.
Входной файла содержит натуральное число n — количество сердец, за которым следует n троек натуральных чисел xi yi di.
Выходной файл должен содержать изображение открытки.
1 ≤ n ≤ 102
1 ≤ xi, yi, di ≤ 50
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | xml.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | xml.out |
Формат XML является распространенным способом обмена данными между различными программами. Недавно программист Иванов написал небольшую программу, которая сохраняет некоторую важную информацию в виде XML-строки.
XML-строка состоит из открывающих и закрывающих тегов.
Открывающий тег начинается с открывающей угловой скобки < (ASCII 60), за ней следует имя тега — непустая строка из строчных букв латинского алфавита, а затем закрывающая угловая скобка > (ASCII 62). Примеры открывающих тегов: <a>, <dog>.
Закрывающий тег начинается с открывающей угловой скобки, за ней следует прямой слеш / (ASCII 47), затем имя тега — непустая строка из строчных букв латинского алфавита, а затем закрывающая угловая скобка. Примеры закрывающихся тегов: </a>, </dog>.
XML-строка называется корректной, если она может быть получена по следующим правилам:
Например, представленные ниже строки:
Иванов отправил файл с сохраненной XML-строкой по электронной почте своему коллеге Петрову. Однако, к сожалению, файл повредился в процессе пересылки: ровно один символ в строке заменился на некоторый другой символ.
Требуется написать программу, которая по строке, которую получил Петров, восстановит исходную XML-строку, которую отправлял Иванов.
Входной файл содержит одну строку, которая заменой ровно одного символа может быть превращена в корректную XML-строку. Строка во входном файле заканчивается переводом строки.
Выходной файл должен содержать корректную XML-строку, которая может быть получена из строки во входном файле заменой ровно одного символа на другой. Если вариантов ответа несколько, можно вывести любой.
Длина строки лежит в пределах от 7 до 1000, включительно. Строка содержит только строчные буквы латинского алфавита и символы <, > и /.
№ | Входной файл (xml.in ) |
Выходной файл (xml.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
При строительстве нового кампуса ДВФУ на о. Русском по дну пролива был проложен водовод с материка на остров. К сожалению, после завершения строительства все чертежи были утеряны, а строители разъехались. Чтобы восстановить карту водовода, были проведены гидрографические работы.
Была составлена прямоугольная карта залива, разбитая на ячейки. Левый столбец ячеек примыкает к материку, а правый — к острову. По результатам работ каждая ячейка была помечена символом '#' (по ячейке может проходить водовод) или '.' — водовод по ячейке точно не проходит.
Известно, что водовод представляет собой последовательность ячеек, имеющих общую сторону. Первая его ячейка находится в первом столбце клеток карты, последняя — в последнем. Водовод не проходит дважды через одну и ту же ячейку.
Дана карта, составленная по результатам работ. Необходимо определить, можно ли однозначно восстановить водовод по карте.
Первая строка входного файла содержит размеры карты — высоту H и ширину W. Далее следует H строк по W символов в каждой — карта.
Если положение водовода может быть однозначно восстановлено, то выведите сначала слово YES
,
а затем набор чисел, содержащих описание самого водовода.
Первое число в описании обозначает количество ячеек водовода, n, за которым следует
n пар чисел вида ri, ci, обозначающих номер строки и номер столбца очередной ячейки
(строки и столбцы нумеруются с единицы).
Если существует несколько способов восстановить положение водовода, то выведите сначала слово
MULTIPLE
, а затем два различных описания водовода в любом порядке.
Если существует более двух вариантов, выведите любые два из них.
Если водовод восстановить невозможно, выведите единственное слово NO
.
2 ≤ H, W ≤ 200
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|