Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача A. Очень состоятельный крот Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта — Чем хотите пока заняться, состоятельные кроты? — А что если нам посчитать? — И то дело! Один очень состоятельный крот знает только целые неотрицательные числа. Он умеет выполнять на своих счётах три действия: 1) получать из числа 𝑥 число 2𝑥; 2) получать из числа 𝑥 число 2𝑥+1; 3) получать из числа 𝑥 число ⌊𝑥/2⌋ (целую часть при делении 𝑥 пополам). Каждое утро крот выбирает очередную пару целых чисел 𝑥 и 𝑦, таких что 1 6 𝑥 < 𝑦 6 2𝑙 −1, и в течение дня получает из числа 𝑥 число 𝑦, выполняя на своих счётах некоторую последовательность действий. Крот хорошо умеет считать, поэтому всегда обходится самой короткой последовательностью действий, достаточной для получения числа 𝑦 из числа 𝑥. Сколько в общей сложности действий на счётах выполнит крот, пока не переберёт все пары чисел в диапазоне от 1 до 2𝑙 −1? Формат входного файла В единственной строке записано целое число 𝑙 (2 6 𝑙 6 1018 ). Формат выходного файла Найдите количество действий на счётах, которое должен будет выполнить крот, и выведите остаток при делении этого числа на 109 +7. Пример standard input 2 standard output 4 В первый день крот получит из числа 1 число 2, выполнив первое действие. Во второй день он получит из числа 1 число 3, выполнив второе действие. В третий день он получит из числа 2 число 3, выполнив сначала третье, а затем второе действие. Страница 1 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача B. Мирный атом Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 2 секунды 64 мегабайта Самое страшное слово в ядерной физике — «Упс!..» Белоярская атомная электростанция оказалась сильно повреждена семибалльным землетрясением, недавно происшедшим в Уральских горах. Ядерный реактор уцелел, но почти все системы управления вышли из строя. В частности, не работают датчики, поэтому персонал может лишь догадываться о том, что происходит внутри реактора. Реактор нужно остановить как можно быстрее! Но для этого необходимо знать текущее положение стержней управления и защиты. Стержни управления и защиты — это основной инструмент контроля над реактором. Внутри стальной оболочки они содержат сердечник из бора, который хорошо улавливает нейтроны. Когда стержни введены в активную зону реактора, они поглощают нейтроны и тем самым замедляют реакцию. И наоборот, когда они выведены, нейтронов становится больше и реакция ускоряется. На БАЭС стержни могут перемещаться от нулевого положения, когда они полностью выведены, до глубины в 𝑛 мм, когда они полностью погружены. Просто погрузить стержни целиком нельзя — если не знать состояния реактора на этот момент, это может привести к плачевным последствиям. Так, именно после погружения стержней на Чернобыльской АЭС в 1986 году реактор стал полностью неуправляемым. Поэтому нужно узнать текущее положение стержней до того, как принимать меры. В распоряжении у персонала есть лог всех изменений положения стержней. К сожалению, в логе записано лишь то, на сколько миллиметров перемещались стержни, но не сказано, в какую сторону — вверх или вниз. Теперь сотрудникам станции не обойтись без вашей помощи. Формат входного файла В первой строке записаны целые числа 𝑛, 𝑠 и 𝑘 — максимальная глубина погружения стержней, исходная глубина погружения и количество записей в логе соответственно (0 6 𝑠 6 𝑛 6 109 ; 𝑛 > 0; 1 6 𝑘 6 40). Во второй строке записаны 𝑘 целых положительных чисел — величины сдвига стержней в хронологическом порядке. Гарантируется, что существует последовательность сдвигов, согласующаяся с логом, при выполнении которой стержни всегда были погружены не менее чем на 0 мм и не более чем на 𝑛 мм. Формат выходного файла Выведите два целых числа — минимальную и максимальную возможную глубину погружения стержней в конечный момент времени. Пример standard input 10 3 3 4 5 1 standard output 1 3 Страница 2 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача C. Посиделки у Дена Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Реклама пива и напитков, изготавливаемых на его основе, не должна использовать образы людей и животных. Федеральный закон «О рекламе», гл. 3 ст. 22 Ден позвал в гости 𝑛 друзей. Друзья обрадовались и поехали в Ашан за соком. 𝑖-й друг купил 𝑎𝑖 литров сока. После этого друзья приехали к Дену и сели пить сок. Все, включая Дена, выпили сока поровну. Когда сок закончился, Миша стал жаловаться на то, что он купил его больше, чем выпил сам. Чтобы Миша не расстраивался, Ден достал из кармана сто рублей и дал Мише в качестве компенсации за сок, который тот купил, но не выпил сам. Тогда ещё несколько друзей Дена начали жаловаться на то же, что и Миша. Денег у Дена больше не было, поэтому он предложил всем друзьям, которые купили сока больше, чем выпили сами, справедливо поделить его сто рублей между собой. Как друзья Дена должны поделить эти деньги? Следует считать, что Ден оплатил весь сок, выпитый не теми людьми, которые его покупали, а не только сок, выпитый им самим. Формат входного файла В первой строке записано целое число 𝑛 — количество друзей Дена (2 6 𝑛 6 100). Во второй строке записаны целые числа 𝑎1 , . . . , 𝑎𝑛 (0 6 𝑎𝑖 6 100). Сумма всех 𝑎𝑖 строго положительна. Формат выходного файла Выведите, сколько рублей из ста должен забрать себе 𝑖-й друг. Округлите все числа вниз до целого количества рублей. Примеры standard input 3 10 10 10 2 10 0 standard output 33 33 33 100 0 Страница 3 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача D. Остров Меркет Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Меркет — необитаемый остров в Балтийском море. Исторически западная часть острова принадлежит Швеции, а восточная часть — Финляндии. В 1885 году финны построили на острове маяк. Точных карт острова тогда ещё не существовало, и впоследствии шведская сторона заявила, что маяк находится на её территории. Чтобы урегулировать территориальный спор, было решено провести по острову границу между Швецией и Финляндией так, чтобы площади шведской и финской частей острова совпадали, а маяк целиком находился на территории Финляндии. Будем считать остров Меркет прямоугольником на плоскости, а маяк — квадратом, расположенным строго внутри этого прямоугольника. Стороны прямоугольника и квадрата параллельны осям координат, юго-западный угол острова имеет координаты (0, 0), а северо-восточный — (𝑤, ℎ). Граница должна являться ломаной с вершинами в точках с целыми координатами, проходящей от северного побережья острова к южному. Отрезки ломаной должны быть параллельны осям координат. Граница не должна иметь общих точек с западным и восточным побережьями острова и должна иметь ровно по одной общей точке с северным и южным побережьями. Граница не может проходить через маяк, но может касаться его. Определите, каким образом нужно провести по острову границу между странами. Формат входного файла В первой строке записаны целые числа 𝑤 и ℎ — размеры острова Меркет (3 6 𝑤, ℎ 6 106 ; 𝑤 · ℎ чётно). Во второй строке записаны целые числа 𝑥, 𝑦 и 𝑑 — координаты юго-западного угла маяка и длина стороны маяка (𝑑 > 0; 0 < 𝑥 < 𝑤−𝑑; 0 < 𝑦 < ℎ−𝑑). Формат выходного файла В первой строке выведите количество вершин ломаной, а в следующих строках — целые координаты этих вершин, следуя от вершины на северном побережье к вершине на южном. Вертикальные и горизонтальные звенья ломаной должны чередоваться, первое и последнее звено должны быть вертикальными. Все звенья должны иметь ненулевую длину. Ломаная не должна иметь самопересечений и самокасаний. Количество вершин в ломаной не должно превосходить 1 000. Если границу можно провести несколькими способами, выведите любой из них. Если провести границу с соблюдением всех описанных условий нельзя, выведите «Impossible». Примеры standard input 6 3 1 1 1 10 10 1 1 8 standard output 6 4 3 4 2 1 2 1 1 4 1 4 0 Impossible Страница 4 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача E. Стихотворный размер Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Не мог он ямба от хорея, Как мы ни бились, отличить. А. С. Пушкин В стихосложении стопой называется группа из нескольких слогов, один из которых является ударным. Вид стопы определяется количеством слогов и позицией ударного слога в ней. Обычно в стихотворении используются стопы только одного вида, и этот вид задаёт размер стихотворения. Двухсложные стопы с ударением на первый слог задают хорей, с ударением на второй слог — ямб. Трёхсложные стопы с ударением на первый, второй и третий слог образуют соответственно дактиль, амфибрахий и анапест. Каждая строка стихотворения состоит из нескольких стоп одного вида, причём последняя может присутствовать в строке в усечённом виде. Вряд ли в ближайшее время найдётся школьник, которому никогда не приходилось и не придётся определять размер стихотворения на уроке литературы. Вы можете помочь им всем, автоматизировав этот процесс. Формат входного файла В первой строке записано целое число 𝑛 (2 6 𝑛 6 100) — количество строк в стихотворении. Следующие 𝑛 строк содержат текст стихотворения. Каждое слово стихотворения состоит из одного или более слогов. Если слогов в слове несколько, они разделяются дефисом. Каждый ударный слог заключён в квадратные скобки. Гарантируется, что в каждой строке стихотворения есть как минимум четыре слога. Мы удалили из текста стихотворения все знаки препинания, поэтому теперь в нём встречаются только строчные и заглавные латинские буквы, пробелы, дефисы и квадратные скобки. Длины всех строк не превосходят 50 символов. Формат выходного файла Выведите название размера, которым написано данное стихотворение, — «trochee» (хорей), «iamb» (ямб), «dactyl» (дактиль), «amphibrach» (амфибрахий) или «anapaest» (анапест). Если же в стихотворении нарушен размер, выведите «not a poem». Пример standard input 4 My [un]-cle [high] i-[deals] ins-[pire] him But [when] past [jo]-king [he] fell [sick] he [real]-ly [forced] one [to] ad-[mire] him and [ne]-ver [played] a [shrew]-der [trick] standard output iamb Страница 5 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача F. Нанотехнологии Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Специалисты из лаборатории нанотехнологий Уральского федерального университета занимаются созданием вычислителя, работающего на уровне отдельных атомов. Недавно они узнали, что если правильно расположить на плоскости 𝑛 атомов тантала, то можно построить на их основе квантовый компьютер, обладающий недостижимыми ранее характеристиками. К сожалению, теория описывает только некоторые физические характеристики системы атомов, но не их конфигурацию в целом. Физики должны вычислить, как именно нужно расположить атомы, чтобы добиться желаемого эффекта. Сканирующий туннельный микроскоп, который физики используют для своих опытов, может поместить атом тантала только в точки, координаты которых выражены целым числом нанометров, по модулю не превышающим 106 . Чтобы определить координаты атомов, учёные обратились за помощью к вам. Они избавились от лишней физической информации и предоставили вам только квадраты расстояний между всеми парами атомов. Формат входного файла Первая строка содержит единственное целое число 𝑛 — общее количество атомов (2 6 𝑛 6 100). Далее в 𝑛 строках записана матрица 𝑎𝑖𝑗 размера 𝑛 × 𝑛. Число 𝑎𝑖𝑗 равно требуемому квадрату расстояния между атомами с номерами 𝑖 и 𝑗 (0 6 𝑎𝑖𝑗 6 109 ; 𝑎𝑖𝑗 = 𝑎𝑗𝑖 ; 𝑎𝑖𝑖 = 0). Все 𝑎𝑖𝑗 целые. Формат выходного файла Если существует ответ, удовлетворяющий данной матрице квадратов расстояний, выведите 𝑛 строк. 𝑖-я строка должна содержать два целых числа, по модулю не превосходящих 106 — координаты 𝑖-го атома. Если существует несколько возможных ответов, выведите любой из них. Если разместить атомы требуемым образом невозможно, выведите «Impossible». Примеры standard input 3 0 1 4 3 0 1 5 3 0 1 0 1 4 0 1 1 0 standard output 0 0 1 0 2 0 Impossible 1 5 0 1 1 0 1 0 0 1 1 0 5 -5 5 -4 5 -5 Страница 6 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача G. Конкурс прогнозов Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта На финале чемпионата мира по программированию вручается четыре комплекта золотых, четыре комплекта серебряных и четыре комплекта бронзовых медалей — таким образом, медали получают команды, занявшие первые двенадцать мест. До финала чемпионата мира в Орландо оставалось несколько дней. Среди ветеранов спортивного программирования из УрГУ разгорелся спор о том, какие команды имеют наиболее высокие шансы завоевать медали на предстоящем соревновании. Вадик предложил каждому, кто хочет сделать прогноз на результаты финала, внести в общий банк пять долларов и высказать несколько предположений вида «Команда вуза 𝑋 завоюет медаль достоинства 𝑌 ». Ветераны, сделавшие наибольшее количество верных предположений, должны были поделить деньги из банка между собой. Но ветераны отказались, заявив, что результаты финала всегда оказываются неожиданными, а терять пять долларов никто не хочет. Тогда Вадик изменил условия конкурса прогнозов. Теперь за то, чтобы сделать свой прогноз, не нужно было платить деньги, но каждому, сделавшему наибольшее количество верных предположений, Вадик платил по пять долларов сам. На таких условиях ветераны согласились участвовать в конкурсе, и каждый из них высказал некоторое количество предположений о том, какая команда какую медаль завоюет. Зная результаты финала чемпионата мира и все сделанные прогнозы, определите, сколько денег Вадику пришлось заплатить победителям конкурса. Формат входного файла Первые двенадцать строк содержат названия вузов, завоевавших медали чемпионата мира. Вузы перечислены в порядке занятых мест — с первого по двенадцатое. В следующей строке записано целое число 𝑛 — количество участников конкурса прогнозов (1 6 𝑛 6 100). Далее следуют 𝑛 блоков, содержащих прогнозы ветеранов. 𝑖-й блок начинается с целого числа 𝑘𝑖 — количества предположений, сделанных 𝑖-м участником конкурса. В следующих 𝑘𝑖 строках записаны эти предположения в виде <название_вуза> : <медаль>. <медаль> — слово «gold», «silver» или «bronze». Предположения каждого участника конкурса непротиворечивы — ни один вуз в них не может завоевать более одной медали, а общее число медалей каждого достоинства не превышает четырёх. Названия вузов могут содержать строчные и заглавные латинские буквы, символы подчёркивания, точки и запятые. Длина каждого названия составляет не менее одного и не более тридцати символов. Формат выходного файла Выведите, сколько денег должен заплатить Вадик по итогам конкурса прогнозов. Если несколько человек сделало наибольшее количество верных предположений, Вадик выплачивает по пять долларов каждому из них. Страница 7 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Пример standard input Zhejiang_U U_of_Michigan_at_Ann_Arbor Tsinghua_U St._Petersburg_SU Nizhny_Novgorod_SU Saratov_SU Friedrich_Alexander_U Donetsk_National_U Jagiellonian_U_in_Krakow Moscow_SU Ural_SU U_of_Waterloo 3 6 Moscow_SU : gold St._Petersburg_SU_of_ITMO : gold Warsaw_U : gold Tsinghua_U : gold Nizhny_Novgorod_SU : silver Saratov_SU : silver 6 Warsaw_U : gold Saratov_SU : gold Tsinghua_U : gold Donetsk_National_U : silver St._Petersburg_SU_of_ITMO : silver Ural_SU : bronze 6 Zhejiang_U : gold Tsinghua_U : gold Shanghai_Jiao_Tong_U : gold Fudan_U : gold Moscow_SU : silver Nizhny_Novgorod_SU : silver standard output 15 Страница 8 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача H. Новогодний круиз Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта И немедленно выпил. . . В жизни русского человека всегда есть место празднику. Особенно когда несколько поводов для празднования следуют один за другим — Новый год, Рождество, старый Новый год. . . Все отмечают эти праздники по-разному. Кому-то нравится побыть в кругу семьи или друзей, а кого-то, наоборот, тянет в путешествия. В компании «Сибирские железные дороги» решили совместить эти два варианта и запустили специальный круизный поезд «Бодун» по маршруту Владивосток–Москва– Владивосток. Этот поезд будет курсировать всего один раз в год — в новогодние праздники. В поезде будут созданы все условия для того, чтобы любой из праздников можно было отмечать вплоть до следующего. Ну, или до прибытия поезда в пункт назначения. Спрос на билеты на данный поезд превзошёл все ожидания компании. Их продажу пришлось прекратить уже на третий день, поскольку иначе поезд, вмещающий всех желающих, не встал бы ни на один вокзал. Работники Сибирских железных дорог посчитали, сколько билетов продано на проезд между каждой парой станций, и теперь хотят определить, сколько вагонов должно быть в поезде, чтобы хватило мест для всех пассажиров. Формат входного файла В первой строке записано единственное целое число 𝑛 — количество станций, на которых останавливается поезд при следовании в одну сторону (2 6 𝑛 6 100). Станции пронумерованы числами от 1 до 𝑛 в порядке следования поезда, Владивосток имеет номер один, Москва — номер 𝑛. Далее в 𝑛 строках записана матрица 𝑎𝑖𝑗 размера 𝑛 × 𝑛. Число 𝑎𝑖𝑗 равно количеству людей, купивших билет от станции 𝑖 до станции 𝑗 (0 6 𝑎𝑖𝑗 6 1 000; 𝑎𝑖𝑖 = 0). Все 𝑎𝑖𝑗 целые. Если 𝑖 < 𝑗, то пассажиры, купившие билет от станции 𝑖 до станции 𝑗, сядут на поезд, следующий из Владивостока в Москву, а если 𝑖 > 𝑗, то на поезд, возвращающийся из Москвы во Владивосток. Формат выходного файла Выведите единственное целое число — минимальное количество вагонов, которое должно быть в поезде, чтобы всем пассажирам хватило мест. В каждом вагоне ровно 36 мест. Пример standard input 3 0 180 180 0 0 180 360 0 0 standard output 10 Страница 9 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача I. Зиниум 2 Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Напомним, что Зиниум — это шахматная доска размером 𝑛 × 𝑛 клеток. Клетка в левом нижнем её углу имеет координаты (1, 1), а клетка в правом верхнем углу — координаты (𝑛, 𝑛). По легенде, если на доске расставить 𝑛 ферзей таким образом, что ни один из них не будет атаковать другого, то освобождённая энергия Зиниума изменит мир до неузнаваемости. Реки повернутся вспять, небо упадёт на землю, люди научатся называть вещи своими именами. . . Все верили в легенду про Зиниум, пока артефакт не попал в руки к Игорю. Когда Игорю удалось расставить 𝑛 ферзей требуемым образом, ничего не произошло (во всяком случае, Игорь не заметил ничего необычного). Тогда Игорь предположил, что в легенде говорилось не об обычной, а о торической шахматной доске. Чтобы получить торическую шахматную доску размера 𝑛 × 𝑛, нужно взять обычную доску такого же размера, после чего склеить её верхнюю горизонталь с нижней, а левую вертикаль с правой. На рисунке показано, какие клетки торической шахматной доски 8 × 8 держит под боем один ферзь. Чтобы проверить свою гипотезу, Игорь пытается расставить на торической доске 𝑛 ферзей так, чтобы ни один из них не атаковал другого. Помогите ему в этом. Формат входного файла В единственной строке записано целое число 𝑛 (4 6 𝑛 6 105 ). Формат выходного файла Если искомая расстановка существует, выведите в первой строке «Yes», а во второй — 𝑛 целых чисел. 𝑖-е число должно равняться 𝑦-координате ферзя, 𝑥-координата которого равна 𝑖. Если возможных расстановок несколько, выведите любую из них. Если расстановки не существует, в единственной строке выведите «No». Примеры standard input 5 8 standard output Yes 2 4 1 3 5 No Страница 10 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача J. Сейсмические волны Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта In case of fire, exit building before tweeting about it. Сейчас уже никого не увидишь историями о том, как человек написал в блог или социальную сеть о чрезвычайном происшествии до того, как вызвать службу спасения. Японские власти, воспользовавшись такой привязанностью граждан к интернет-технологиям, предложили им использовать Twitter, чтобы предупреждать своих друзей и близких о землетрясении. Действительно, скорость распространения сейсмических волн составляет не более пяти километров в секунду, поэтому люди, находящиеся далеко от эпицентра, смогут прочитать о нём за несколько секунд до прихода сейсмической волны. Для кого-то эти секунды могут стать решающими. . . У каждого пользователя Twitter есть список фолловеров. Твит (сообщение) пользователя видят все его фолловеры. Каждый из них может сделать ретвит этого твита, то есть повторить полученный твит, чтобы он стал доступен уже их фолловерам. Эти фолловеры могут, в свою очередь, могут снова сделать ретвит, и так далее. . . Каждый раз при ретвите к сообщению автоматически спереди дописывается строка «RT @nick: », где 𝑛𝑖𝑐𝑘 — имя пользователя, чей твит (или ретвит) ретвитится. Длина любого сообщения не может превышать 140 символов, поэтому, если ретвит превышает это ограничение, он не отправляется вовсе. Для проведения эксперимента МЧС Японии выбрало несколько человек и решило вычислить, скольких из них можно предупредить, сообщив о надвигающемся землетрясении лишь одному. Формат входного файла В первой строке дано целое число 𝑛 — количество пользователей Twitter, выбранных для эксперимента (2 6 𝑛 6 100). Далее в 𝑛 строках следуют их описания в следующем формате: имя пользователя, количество его фолловеров и список их имён. Количество фолловеров — целое неотрицательное число. В списке содержатся только имена других выбранных для эксперимента пользователей, имена в списке не повторяются. Все имена — непустые строки, состоящие из строчных и заглавных латинских букв, длиной не более 30 символов. Имена всех пользователей различны. В последней строке содержится твит о землетрясении, отправленный первым из описанных пользователей — непустая строка, состоящая из символов с ASCII кодами от 32 до 127, длиной не более 140 символов. Формат выходного файла В первой строке выведите количество пользователей, которые узнают о землетрясении. Затем выведите их имена в произвольном порядке, по одному в строке. Пример standard input 5 Miyako 1 Sae Yuno 2 Miyako Sae Nazuna 1 Nori Sae 1 Yuno Nori 1 Nazuna Hidamari is going to collapse!!! standard output 3 Miyako Sae Yuno Страница 11 из 12 Открытый чемпионат УрФУ по программированию Екатеринбург, 8 октября 2011 года Задача K. Просторный офис Имя входного файла: Имя выходного файла: Ограничение по времени: Ограничение по памяти: standard input standard output 1 секунда 64 мегабайта Программисты компании «Периметр» работают над 𝑛 проектами. Начальник программистов Шифтмэн прекрасно понимает, насколько важны комфортные условия для продуктивной работы — в компании нет ни дресс-кода, ни фиксированного рабочего графика, зато на кухне всегда есть чай и свежие киви. А когда команда проекта «Диплодок» стала жаловаться на то, что после выхода на работу новых сотрудников в комнате не протолкнуться, Шифтмэн понял — пора искать более просторный офис. Новое офисное здание нашлось быстро. Оно расположено недалеко от метро, возле уютного парка. Кроме того, в подвале здания много парковочных мест. Узнав, что в новом офисе 𝑛 больших комнат, Шифтмэн решил выделить по комнате каждому проекту, чтобы сотрудники создали там уникальную для каждого проекта рабочую атмосферу. Менеджер каждого проекта знает, какая комната идеально подойдёт для его команды — с одной стороны, комната должна быть не слишком тесной, а с другой — не слишком большой, чтобы сотрудники не боялись того, что к ним могут подселить новый проект. Помогите менеджерам поделить комнаты самим, быстро и без вмешательства начальства. Формат входного файла В первой строке записано целое число 𝑛 — количество проектов в Периметре (2 6 𝑛 6 1 000). Во второй строке записаны 𝑛 целых чисел — площади всех комнат в новом офисе. В 𝑖-й из следующих 𝑛 строк записаны два целых числа — минимальная и максимальная площади комнаты, в которой согласна сидеть команда 𝑖-го проекта (естественно, минимальная площадь не превосходит максимальной). Все указанные площади положительные и не превосходят 10 000. Формат выходного файла Если существует единственный способ рассадить команды по комнатам так, чтобы все команды остались довольны, в первой строке выведите «Perfect!», а во второй строке — перестановку чисел от 1 до 𝑛. 𝑖-е число должно обозначать номер комнаты, которую должна занять команда 𝑖-го проекта. Комнаты занумерованы числами от 1 до 𝑛 в том порядке, в котором они описаны во входных данных. Если возможных вариантов рассадки несколько, выведите «Ask Shiftman for help.» Если рассадить команды требуемым образом нельзя, выведите «Let’s search for another office.» Примеры standard input 3 40 30 20 60 3 40 30 20 60 50 60 70 40 60 standard output Perfect! 2 1 3 Let’s search for another office. 50 70 70 50 60 Страница 12 из 12