Автор: | Н. Малявин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Вы работаете программистом в строительной компании. Царь выдал компании заказ на постройку в Лесу фей дворца. Дворец должен иметь форму квадрата со стороной a и быть окружён квадратным садом. Прораб сообщил вам, что самый большой квадратный участок в Лесу имеет площадь S.
Команде садовников-аналитиков для разработки оптимального сада требуется знать, какой площадью для сада они располагают. Площадь для сада — это площадь на участке, не занятая дворцом.
Входной файл содержит целые числа a и S.
Выходной файл должен содержать единственное целое число — доступную площадь для сада, либо − 1, если построить дворец на участке невозможно.
1 ≤ a ≤ 1000
1 ≤ S ≤ 108
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Жильцов, А. Усманов, А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Шушанчики — любимые питомцы олимпиадных программистов. Некоторые Человеки прознали об этом и быстро организовали бизнес по транспортировке и продаже этих милых зверей.
Ежедневно из Хабаровска во Владивосток транспортируется A шушанчиков, из Владивостока в Якутск — B шушанчиков, а из Якутска в Хабаровск — C шушанчиков.
Разумеется, такая схема транспортировки не всегда оптимальна. Например, если на всех маршрутах транспортировки требуется перевести по 5 шушанчиков, то проще вообще никого никуда не везти.
Помогите Человекам снизить издержки своего бизнеса. Составьте такой план транспортировки, чтобы количество ежедневно транспортируемых шушанчиков было минимальным, а итоговое ежедневное изменение количества шушанчиков в каждом из городов осталось прежним.
В первой строке записано три целых числа A, B, C — количество ежедневно транспортируемых шушанчиков на каждом из маршрутов: из Хабаровска в Владивосток, из Владивостока в Якутск, из Якутска в Хабаровск соответственно.
В первой строке выведите два целых числа — количество шушанчиков, которых следует транспортировать из Хабаровска во Владивосток и из Хабаровска в Якутск соответственно.
Во второй строке выведите два целых числа — количество шушанчиков, которых следует транспортировать из Владивостока в Якутск и из Владивостока в Хабаровск соответственно.
В третьей строке выведите два целых числа — количество шушанчиков, которых следует транспортировать из Якутска в Хабаровск и из Якутска во Владивосток соответственно.
1 ≤ A, B, C ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Усманов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Существует много способов готовиться к олимпиадам по программированию. Один из них — решать задачи на сайте Timforces. На этом сайте есть рейтинг всех пользователей, составленный на основе количества решенных каждым пользователем задач. Нумерация мест в рейтинге начинается с 1, номера мест не повторяются. Чем больше задач пользователь решил, тем меньше его номер в рейтинге. Если два и более пользователей решили одинаковое количество задач, то они располагаются в произвольном порядке.
Алексей придумал понятие продвинутого пользователя. Продвинутыми считаются те пользователи, у которых количество решенных задач не меньше занимаемого места в рейтинге. Например, если пользователь занимает 3 место в рейтинге и при этом решил 5 задач, то он продвинутый, а если пользователь с 10 места решил лишь 9 задач, то он не продвинутый.
Алексей захотел несколько раз посчитать, какое максимальное количество продвинутых пользователей может получиться, если некоторые пользователи суммарно решат определённое количество задач.
В первой строке входного файла записано одно целое число N — количество пользователей на сайте Timforces.
Во второй строке записано N целых чисел ai — количество решенных задач у пользователя с i-го места в рейтинге.
В третьей строке записано одно целое число Q — количество вопросов Алексея.
Далее следует Q целых чисел pi — суммарное количество задач, решенных некоторыми пользователями.
Обратите внимание, что вопросы Алексея независимы. То есть, перед каждым запросом количество решенных задач и рейтинг такие же, как во входных данных.
Выведите Q целых чисел — ответы на каждый вопрос Алексея.
1 ≤ N, Q ≤ 105
0 ≤ ai, pi ≤ 109
В первом вопросе Алексея из первого примера пользователь с третьего места может решить одну задачу и станет продвинутым. Помимо этого, продвинутыми уже являются пользователи с первого и второго места.
Во втором вопросе из первого примера пользователь со второго места может решить 2 задачи, пользователь с третьего места — 4 задачи, пользователь с четвертого места — 5 задач. Тогда положение пользователей в рейтинге изменится. Например, на первом месте нового рейтинга будет пользователь с четвёртого места старого рейтинга и т.д. Количество задач у пользователей в новом рейтинге: 7 6 5 4. В таком случае все пользователи являются продвинутыми.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Усманов, А. Жихарева | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Ксения работает дизайнером. Сегодня к ней пришел заказ на рисование эскиза будущего забора. Техническое задание настолько детально описывает все тонкости забора, что для вкуса Ксении практически не осталось применения.
Забор состоит из N досок, i-я доска имеет высоту hi и четную ширину wi. Все доски заострены сверху, чтобы обеспечить безопасность. Согласно техническому заданию, эскиз забора необходимо выполнить в наилучшей CAD системе для проектирования — программе "Блокнот". Эскиз состоит из следующих символов:
Высота доски — количество символов от самой нижней части до самой верхней. Ширина доски — количество символов пространства между левой и правой границей доски.
Эскиз должен вмещать в себя весь забор и должен быть минимального размера по ширине и высоте. То есть на эскизе не должно быть лишнего пустого пространства вокруг забора.
Для полного понимания внимательно рассмотрите примеры.
В первой строке записано одно целое число N — количество досок в заборе.
Далее следует N строк, содержащих по два целых числа hi и wi — высота и ширина каждой доски.
Выведите эскиз забора в описанном формате.
1 ≤ N ≤ 50, 2 ≤ wi, hi ≤ 50, 2 + wi2 ≤ hi, Все wi — четные.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Когда юному программисту Васе было три года, он уже знал, что буквы бывают "маленькие" (a, b, c, ..., z) и "большие" (A, B, C, ... Z), но ещё не выучил порядок букв в алфавите.
Мама играла с Васей в игру: она выписывала последовательность маленьких и больших букв, и спрашивала, "в порядке ли они". Если в последовательности шли сначала только маленькие буквы, а потом только большие, Вася отвечал YES (как будущий программист, он уже начал учить английские слова). Если в последовательности маленькие и большие буквы были перемешаны, Вася отвечал NO.
Напишите программу, которая будет действовать как Вася.
Входной файл содержит строку из больших и маленьких латинских букв.
Выходной файл должен содержать строку YES, если все маленькие буквы в исходной строке расположены левее всех больших, либо строку NO в противном случае.
Длина входной строки от 1 до 10 символов.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | А. Усманов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Недавно компания TIoN разработала новый способ сжатия сообщений.
Сжатие проходит в несколько этапов. Один этап заключается в следующем: в исходном сообщении выбирается такой отрезок из букв, что разница между каждой парой соседних букв на нём равна одному и тому же значению. Разница между двумя буквами равна разнице их позиций в алфавите.
После выбора отрезка он заменяется на "*n.d", где '*' — первая буква отрезка, 'n' — количество букв в отрезке, 'd' — разница между каждой парой соседних букв. Например, отрезок "cdefghi" после сжатия будет выглядеть как "c7.1", а отрезок "geca" — "g4.-2".
После этого начинается новый этап и выбор другого отрезка для сжатия. Разумеется, цель сжатия — уменьшить длину сообщения, поэтому если результат сжатия длиннее, чем исходных отрезок, то такое сжатие не выполняется. Сжатию также не подвергаются символы, получившиеся в результате сжатия других отрезков.
Компании TIoN в срочном порядке необходимо доказать целесообразность существования нового вида сжатия. Для этого им нужно вычислить минимально возможную длину сообщения S после сжатия.
Первая строка содержит одно целое число N — длина сообщения.
Вторая строка содержит строку S — сообщение, которое подвергается сжатию.
Строка S состоит из строчных букв латинского алфавита.
Выведите одно целое число — минимальную длину сообщения после сжатия.
1 ≤ N ≤ 105
В первом примере есть два варианта сжатия сообщения: "x10.0t5.-4" и "x9.0x6.-4". Второй вариант короче первого на 1 символ.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Юный программист Вася любит прогуливаться по тропинке длиной D метров, проходящей неподалёку от его школы, и размышлять о том о сём.
В начале прогулки Вася размышляет о Важных Вещах, и ноги несут его с постоянной скоростью, равной либо v1, либо v2 м/c. Затем Вася отвлекается и начинает думать о Всякой Ерунде. В этот момент его скорость становится равной либо w1, либо w2 м/c.
Если Вася затратил на прогулку T секунд, каково максимальное возможное расстояние, пройденное им с Важными Вещами в голове?
Первая строка входного файла содержит числа D T. Во второй строке записаны числа v1 v2. В третьей строке записаны числа w1 w2. Каждое число имеет не более трёх знаков после десятичной точки.
Выходной файл должен содержать одно вещественное число d — максимальное возможное расстояние с точностью не менее 3 десятичных знаков.
Входные данные таковы, что решение всегда существует.
1 ≤ D, T ≤ 1000
10 − 3 ≤ v1 < v2 ≤ 102
10 − 3 ≤ w1 < w2 ≤ 102
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Цапля вилка недавно переехала в Антарктику в государство пингвинов — Пингвинию, и устроилась работать в местную логистическую компанию. Всего в Пингвинии N городов и M дорог, по дорогам можно двигаться в обе стороны. Исторически сложилось, что каждый пингвин посещает ровно три города (возможно проезжая по пути через остальные города). Пингвины не любят однообразие, поэтому одна из самых популярных услуг в логистической компании это прокладка маршрутов между тремя городами a, b, c так чтобы при проезде из a в b, из a в c, и из b в с существовал максимум один город который посещался 3 раза.
Как вы уже могли догадаться Цапля просит вас о помощи, у неё скопилось ровно Q запросов вида a, b, c. И для каждого запроса требуется вывести 3 пути, из a в b, из a в c, и из b в c, так чтобы эти пути удовлетворяли заданным требованиям.
Входной файл содержит числа N и M. Далее следует M пар чисел ui и vi, означающих что города ui и vi соединены дорогой. Далее следует число Q, за которым следует Q попарно различных чисел ai, bi, ci.
Выходной файл должен содержать 3 × Q строк, первое число в строке ki — количество вершин в пути, далее ki чисел — номера вершин пути в порядке посещения.
3 ≤ N ≤ 1000, 1 ≤ Q ≤ 1000, 1 ≤ M ≤ N ⋅ (N − 1)2, 1 ≤ ui, vi ≤ N, ui ≠ vi, 1 ≤ ai, bi, ci ≤ N
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Усманов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Алиса, Вова и Слава решили поиграть в Risk 1D. В отличии от полной версии игры, игровое поле в 1D представляет из себя линию из N клеток-государств. Каждое государство соединено границей со своими соседями слева и/или справа.
В начале игры происходит разделение государств между игроками. Каждый игрок выбирает начальное государство и забирает его себе. После этого, игроки по очереди захватывают остальные государства. За один ход игрок может захватить только одно государство. При этом, это государство не должно никому принадлежать и оно должно граничить с государствами, уже принадлежащим этому игроку. Если игрок не может ничего захватить — он пропускает ход. Разделение государств заканчивается, когда все государства принадлежат игрокам. После этого начинается основная часть игры, но это уже совсем другая задача...
Алиса выбрала себе в качестве начального государство с номером A, Вова — B, Слава — C. Первой ходит Алиса, потом Вова, потом Слава, далее по кругу. Каждый игрок старается максимизировать количество государств, которые будут у него после разделения.
Напишите программу, которая определяет количество государств у Вовы при оптимальной игре всех игроков.
В первой строке записано одно целое число N — количество государств.
Во второй строке записано три целых числа A, B и C — номера начальных государств Алисы, Вовы и Славы соответственно.
Выведите одно целое число — количество государств у Вовы, если все будут играть оптимально.
1 ≤ A < B < C ≤ N ≤ 1000
В первом примере Алиса может захватить государства с номерами 1, 2 и 3, Вова — 4 и 5, Слава — 6, 7 и 8.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Н. Малявин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Биндер проснулся от ужасного с сна — ему приснилось то, чего не может быть — двойка. Двойка буквально сломала весь двоичный мир Биндера. Целый день он ходил в раздумьях, какая последовательность из нулей и единиц могла привести его к такому парадоксу, пока, наконец, не встретил Фроя.
Фрой, его верный друг, выписал для него несколько последовательностей из нулей, единиц и двоек и предложил Биндеру взглянуть на них. Биндер уверен, что если увидит больше одной двойки в строке, то сойдёт с ума, поэтому ему нужен алгоритм, удаляющий из списка все строки, в которых двойка встречается больше одного раза.
Первая строка входного файла содержит целое число n — количество строк далее идут n строк цифр.
Выходной файл должен содержать только строки, содержащие не более одной двойки, в порядке, в котором они встречаются во входном файле. Если в строке встречается цифра кроме 0, 1, или 2, то программа "сходит с ума" и выводит единственную строку — ERROR.
1 ≤ n ≤ 100
Количество цифр в каждой из строк составляет от 1 до 100.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|