Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Вашего друга, который до недавних пор работал кондуктором в маршрутке, повысили, и с этих самых недавних пор он является главным экономистом в фирме, владеющей этими маршрутками. К сожалению, он очень быстро обнаружил, что его знаний недостаточно для такой работы, и стал срочно навёрстывать упущенное. К счастью, это оказалось не столь сложно, благо изучать ему требовалось не всю экономику, а только ту её часть, которая имеет отношение к рынку маршруток в крупных городах.
Среди множества моделей, предложенных экономистами для описания различных видов рынков, вашему другу больше всего понравилась знаменитая «модель конного рынка» Е. фон Бём-Баверка. Эта модель состоит в следующем: в базарный день на рыночной площади собрались N продавцов и M покупателей. У каждого продавца есть одна единица товара (принято говорить о конях); каждый покупатель хочет купить одного коня. С точки зрения покупателей, все продавцы и все кони абсолютно одинаковы, т. е. покупателям всё равно, у кого покупать (значение имеет только цена). Аналогично, с точки зрения продавцов все покупатели одинаковы: продавцам всё равно, кому продавать (опять-таки, значение имеет только цена). Но субъективные оценки товара различаются:
Вдобавок к этим условиям, Е. фон Бём-Баверк справедливо полагает, что каждый продавец будет по возможности запрашивать более высокую цену, в то время как каждый покупатель будет стараться купить как можно дешевле. Далее у Бём-Баверка следуют некоторые рассуждения, которые определяют, какие же конкретно сделки произойдут. По мнению вашего друга, эти рассуждения эквивалентны следующим двум условиям:
Тем не менее, эти правила всё ещё не определяют однозначно цены, по которым будут совершены сделки. Ваш друг попросил вас написать программу, которая определит нижнюю и верхнюю границу диапазона цен, в котором могут быть совершены сделки. Примечание: Вы не ошиблись: вы действительно находитесь на олимпиаде по информатике, а не по экономике :). Поэтому жюри никоим образом не интересуется, не собирается обсуждать и не гарантирует корректность, правильность, реальность и т. д. предложенной модели. Это — задача по информатике, а не по экономике.
В первой строке входного файла находятся два целых числа N и M (1 ≤ N, M ≤ 1 000) — количество продавцов и покупателей соответственно. На второй строке находятся N целых чисел s1, s2, ..., sN, а на третьей строке — M целых чисел b1, b2, ..., bM; эти числа положительны и не превосходят 2 000 000 000.
Если в соответствии с пп. 1 - 4 может произойти хотя бы одна сделка, выведите в выходной файл два числа: сначала нижнюю границу диапазона, потом — верхнюю. Если не произойдёт ни одной сделки, выведите в выходной файл одну строку ‘No solution’ (без кавычек).
4 3 150 110 200 1000 190 100 140
140 150
1 1 100 90
No solution
2 1 150 150 100
No solution
В городском управлении милиции одного прибрежного города ведется расследование крупного дела, в котором могут быть замешаны сотрудники милиции. Было принято решение о тайной установке оборудования для просмотра информации, поступающей через Интернет. Под подозрение попадают два отдела, но добиться выделения денег на покупку двух комплектов оборудования не удалось. К счастью, внутренняя сеть управления имеет древовидную структуру, то есть каждый отдел имеет выход в Интернет через какой-либо другой отдел. Исключение составляет отдел по борьбе с компьютерными преступлениями, который имеет непосредственный доступ в Интернет по модемной линии.
Можно было бы установить оборудование для слежения прямо в этом отделе, но лучше найти такое расположение, чтобы нарушалась секретность как можно меньшего количества лишних отделов. Решение этой задачи поручили вам.
Подчиненные уже пронумеровали все отделы числами натуральными числами, начиная с 1, первый номер присвоен отделу по борьбе с компьютерными преступлениями.
Первая строка входного файла содержит натуральное число n (n ≤ 30000) — количество отделов. Во второй строке записаны номера отделов, за которыми необходимо установить слежение. На третьей строке находятся n - 1 натуральных чисел, i-е из них не больше i и задает номер отдела, к которому подсоединен отдел i + 1.
В выходной файл выведите одно число — номер отдела, в котором следует установить следящее оборудование.
4 3 4 1 1 3
3
8 3 6 1 1 2 4 5 1 1
1
У нас есть две кучки камней, изначально в каждой по одному камню. За один ход можно добавлять один камень в одну из кучек, если в ней меньше N камней. Игра заканчивается, когда в обеих кучках будет N камней.
Не странно, что в нашей школе любят простые числа. Поэтому позиция в игре считается хорошей, если после приписывания к количеству камней в первой кучке количества камней во второй кучке получится простое число.
Например, если в первой кучке 12 камней, а во второй 7, то позиция хорошая, т.к. число 127 простое.
Ваша задача найти такую последовательность ходов, при которой можно перейти из начальной позиции (1, 1) в конечную (N, N) через максимально возможное число хороших позиций. Например, для N = 4 одна из искомых последовательностей такова: 1; 1 -> 2; 1 -> 3; 1 -> 4; 1 -> 4; 2 -> 4; 3 -> 4; 4
Входной файл содержит одно число N. Гарантируется, что 1 ≤ N ≤ 999.
Выведите максимально возможное число хороших позиций для данного N (в приведенном примере оно равно трем: 31, 41, 43).
4
3
Дядя Фёдор, кот Матроскин и Шарик решили обновить забор вокруг своего сада в Простоквашино. Матроскин и Шарик, недолго думая, вкопали N столбов вдоль одной из сторон участка. Это очень сильно расстроило Дядю Фёдора, так как его друзья забыли о самом главном — калитка должна находиться именно на этой стороне, и для неё необходимо было оставить проём шириной как минимум W. Теперь им придётся выкапывать некоторые столбы.
Чтобы работа не пропадала даром, выкопать надо как можно меньше столбов. Помогите Дяде Фёдору определить, какие именно столбы надо выкопать. После выкапывания столбов должен найтись промежуток (между двумя оставшимися столбами, или между оставшимся столбом и концом стороны участка, или между двумя концами стороны участка) ширины больше или равной W.
Первая строка содержит два целых числа N и W — количество вкопанных столбов и минимально необходимую ширину проёма для калитки соответственно. Гарантируется, что 0 ≤ N ≤ 1 000 000 и что 0 ≤ W ≤ 1 000 000.
Будем считать, что вдоль интересующей нас стороны участка введена ось координат. Во второй строке входного файла находятся два числа L и R — координаты левого и правого конца этой стороны (L ≤ R). Далее следуют N чисел — координаты вкопанных столбов. Все координаты (включая L и R) — различные целые числа, по модулю не превосходящие 1 000 000. Гарантируется, что все столбы вкопаны между левым и правым концами стороны.
В первой строке выходного файла должно быть минимальное число столбов, которые надо выкопать. Далее должны следовать номера этих столбов. Столбы нумеруются в том порядке, как они указаны во входном файле, начиная с 1.
Если решений несколько, то вы можете вывести любое. Если решения нет, то выведите в выходной файл одну строку, содержащую число - 1.
Система тестов состоит из трёх групп.
Для всех тестов первой группы выполняются ограничения \(1 \le n \le 8000\). Группа оценивается в 40 баллов.
Для всех тестов второй группы выполняются ограничения \(1 \le n \le 100000\). Группа оценивается в 40 баллов.
Для всех тестов третьей группы выполняются ограничения \(1 \le n \le 1000000\). Группа оценивается в 20 баллов.
3 2 2 6 3 4 5
1 1
3 2 1 6 4 3 5
0
3 5 1 7 5 3 4
3 2 3 1
Том Сойер, блуждая по лабиринту, записывал карандашом изменения в направлении своего движения и сколько шагов он прошел в том или ином направлении. Его запись могла выглядеть так: F 5 R 1 B 2 L 1. Здесь F означает движение вперед (F может быть только первым и обязательным элементом в записи пути), R — поворот направо, L — налево, B — движение назад (видимо, путник зашел в тупик), число после буквы обозначает количество шагов, сделанных после изменения направления. Другие обозначения в записи не встречаются.
Выбравшись из лабиринта, Том решил нарисовать схему своего движения. Однако, если линия на схеме попадала в какую-либо часть лабиринта повторно, то он сразу стирал в схеме ту часть маршрута, которая заведомо оказалась лишней в процессе поиска выхода, не меняя остальные части. Тем не менее, оказалось, что в результирующем маршруте сначала хотя бы один шаг потребуется сделать в первом направлении исходного маршрута. Опишите маршрут, получившийся на схеме Тома.
Во входном файле приводится запись всего маршрута Тома в одной строке. Буква F является первой и встречается один раз. После каждой буквы через 1 пробел расположено натуральное число, не превосходящее 9. Следующая буква расположена также ровно через 1 пробел после числа. Количество изменений в направлении не превосходит 10.
Ответ выдать в том же формате, что и входные данные (он также будет начинаться с буквы F).
F 5 R 1 B 2 L 1
F 5 L 1 L 1