Полл летел над Городом. Яркие полоски улиц, освещённых тысячами фонарей, проносились под ним. Он лавировал между тонкими шпилями телекоммуникационных башен и ажурными решётками радиаторов термоядерных станций. Вокруг деловито сновали вертолёты курьерских служб. Внезапно строгий порядок улиц нарушился. Они превратились из невероятно длинных
параллельных прямых в извивающийся клубок светящихся щупалец. Полл взмыл вверх. С высоты он понял, что это уже не улицы, а ансамбль нейронов, генерирующих нервные импульсы. Один из них ярко вспыхнул и растворился во тьме. Мощные импульсы достигли его соседей, и они тоже превратились в сгустки света. И вот уже волна вспышек пошла по
всей нервной ткани, уничтожая её. Очень скоро Полл остался один в полной темноте. Тьма обступила его, залила глаза и рот, навалилась невероятной тяжестью на грудь. Полл не мог дышать, не мог думать, и всё, что он чувствовал — это дикий, нечеловеческий ужас…
Полл резко вскочил на кровати и схватился за голову. Последнюю неделю его сны стали просто невыносимыми. Яркие, детальные, неотличимые от реальности, но в то же время чудовищно алогичные и бессвязные. Это был весьма опасный симптом, которым проповедники
из секты Обреченцев пугали прохожих в своих уличных проповедях. Полл долго отказывался признать, что с ним может случиться что-то подобное, но его состояние всё ухудшалось, и игнорировать это было уже невозможно. Он набрал в поисковике запрос «Синдром автоиндукции нейроинтерфейса» и довольно быстро нашёл специализированную клинику
неподалёку от его квартиры. Он зашёл на её сайт и записался на приём этим вечером.
На работу Полл пошёл пешком. Личный транспорт в Городе был запрещён, а ехать в переполненном вагоне ему не хотелось. Хотя и на улицах, как всегда, было людно. К гулу людской толпы добавлялись призывные голоса, звучащие с рекламных экранов, нависающих над тротуарами. На одном из них Полл заметил до боли знакомый логотип, и приятный
женский голос сообщил: «До начала четвертьфинальных отборочных соревнований по спортивному программированию осталась одна неделя. Успевайте зарегистрироваться на сайте соревнований!»
Полл зашёл в высокое здание и поднялся на семидесятый этаж. Здесь находился программный комитет тех самых соревнований, а Полл был его председателем. В просторном помещении за компьютерами сидели люди, занимавшиеся подготовкой задач. Большинство из них пользовалось нейроинтерфейсами, поэтому в помещении не было слышно стука клавиатур. Полл принимал в свою группу только профессионалов, получивших лицензию на составление
задач и имевших ранг составителя не ниже третьего. Но, тем не менее, он всё равно лично проверял и утверждал каждую задачу. Он, конечно, доверял своим людям, но дополнительный контроль в таком ответственном деле лишним быть не мог.
Полл прошёл в свой кабинет, подключился через нейроинтерфейс к внутренней сети и ушёл с головой в работу. День пролетел незаметно. Полл заметил, что уже стемнело, только когда его окно озарилось светом от пролетавшего мимо пожарного вертолёта. Он посмотрел на часы и понял, что опаздывает на приём к врачу. Быстро завершив работу, он отправился
в клинику.
В приёмной сидела аккуратная медсестра, которая, не мешкая, проводила его в кабинет доктора Васата. Доктор Васат оказался доброжелательным пожилым врачом, обладавшим способностью мгновенно вызывать доверие у пациентов. Он быстро вник в суть проблемы, мучающей Полла. Поллу даже как-то полегчало на душе от того, что такой специалист займётся его случаем. Доктор Васат немного подумал и предложил сразу пройти сканирование мозга, чтобы можно было со всей определённостью подтвердить или опровергнуть наличие проблем с нейроинтерфейсом. Полл согласился. Они прошли в соседний кабинет, где стояла установка, отдалённо напоминающая электрический стул. Полл сел в неё, доктор зафиксировал его голову между двумя полусферами и отошёл к консоли. Полл не видел перед собой ничего, кроме абсолютно белой стены. Он почувствовал, как что-то подключилось к его нейроинтерфейсу.
— Не сопротивляйтесь, — спокойно сказал доктор.
Полл расслабился. Установка тихонько загудела, по телу прошла волна тепла. Вдруг он заметил, как из белой стены перед ним к нему тянутся тонкие и острые шипы. Они приближались всё ближе и ближе, целясь ему прямо в сердце. Он пытался вырваться из оков, пытался увернуться, но всё было тщетно. Тысячи белых шипов вошли ему в грудь, пронзили сердце и начали наполнять его белым светом. По артериям свет разошёлся по
всему организму, заполнил его рот, стал изливаться в окружающее пространство из его глаз. Полл зажмурился и начал бешено извиваться.
— Полл! Полл! Успокойтесь! Всё уже закончилось! — голос доктора звучал встревожено.
Полл замер и открыл глаза. Доктор Васат держал его за плечи и внимательно смотрел на него. Вокруг не было ни шипов, ни света.
Медсестра помогла Поллу дойти до кабинета врача и принесла ему горячего чая. Он просидел в одиночестве довольно долго, пока в кабинет не зашёл доктор Васат. Тот был хмур. Он сел за свой стол и сразу начал:
— Я не хотел бы вас пугать, но ваше состояние действительно очень серьёзно. Да вы, я думаю, это и сами понимаете. Если так пойдёт дальше, то видения будут преследовать вас не только во сне, но и наяву. Точнее, вы вообще перестанете различать сон и явь.
Они проговорили ещё несколько часов. Доктор обещал помочь всем, чем может, но не было никаких гарантий. Современная медицина ещё не научилась лечить подобные состояния.
Из клиники Полл вышел в очень подавленном состоянии. Доктор хотел было вызвать медицинский вертолёт, чтобы тот доставил Полла домой, но он отказался. Да ему и не хотелось домой. Он направился прямиком к зданию администрации района, которое было самым высоким в округе. И хотя посещение его крыши было запрещено, так случилось, что Полл знал код доступа. Поднявшись на крышу, он подошёл к её самой кромке и вдохнул ночной воздух полной грудью. Перед ним расстилался Город. Не тот странный, извращённый Город из его снов, а привычный, суетливый Город людей. Обыденность. Реальность. При всех её недостатках, Поллу очень не хотелось терять связь с ней. Уж лучше было умереть, чем оказаться в смирительной рубашке в комнате с белым потолком.
— Будешь прыгать? — донёсся откуда-то сзади женский голос.
Полл обернулся. Чуть поодаль от него на вентиляционной трубе сидела девушка и с усмешкой смотрела на него.
— Не знаю, — ответил Полл и тоже улыбнулся.
Девушка спрыгнула с трубы, подошла к Поллу, встала на край крыши рядом и с опаской посмотрела вниз.
— Высоко… А меня зовут Альхена, а тебя как?
— Полл.
Они простояли несколько минут молча. Полл чувствовал некую неловкость. Альхена первой нарушила молчание:
— Ну что, Полл, может пригласишь меня куда-нибудь? — и тут же торопливо добавила, — только сегодня я не могу.
— Ну давай завтра, — зачарованно ответил Полл.
— Давай.
Они обменялись контактами и вместе спустились с крыши. Полл пытался
проследить за ней, но она очень быстро затерялась в толпе.
На следующий день Полл пришёл на работу поздно. В кабинете его ждал старый друг Кастор. Они вместе работали над организацией соревнований уже очень много лет. Только Кастор не сочинял задач. Он с детства был немного повёрнут на защите всего и вся. Он отвечал
за информационную и физическую безопасность соревнований. «Кастор-дог»
называли его за глаза, но Поллу он нравился. Может быть, потому, что Кастор несколько раз вытаскивал Полла из очень щекотливых ситуаций, за что тот был ему премного благодарен.
А ещё Кастор любил лично приходить к каждому и заливать через нейроинтерфейс обновления кодов доступа. Это называли «Кастор ест мозг.» И вместо «мы давно не меняли коды доступа» говорили «что-то давно Кастор нам мозг не ел.»
Вот и сегодня Кастор пришёл с этой целью. Он подключился к нейроинтерфейсу Полла, и, пока коды обновлялись, они болтали о всякой ерунде. Разговор с другом очень благоприятно подействовал на Полла, его страхи отступили и он с усердием принялся за работу.
Вечером он позвонил Альхене и пригласил её поужинать с ним. Они пошли в самый лучший ресторан из находящихся поблизости. Альхена оказалась весьма общительной молодой особой, способной разговорить даже такого молчуна, как Полл. Она много рассказывала и о себе, но Полл так и не смог узнать того, что интересовало его больше всего —
что же Альхена делала на той крыше.
После ресторана они пошли к ней домой. Она жила в маленькой, но уютной квартирке. Они расположились на диване. Альхена налила по бокалу вина, и они выпили за этот прекрасный вечер. Она потянулась к Поллу своими губами…
Она потянулась к Поллу своими губами, как вдруг что-то словно ударило её. Она
запрокинула голову и испустила дикий вопль. Её тело скрутило и она упала на пол.
Через мгновение в квартире воцарился хаос. Входную дверь вырвали наружу, окна разбили, и отовсюду в комнату хлынули люди в бронежилетах и масках, с оружием в руках. Четверо схватили Альхену и куда-то уволокли. Двое надёжно держали Полла. Но тот даже не сопротивлялся — настолько он был поражён неожиданным поворотом сюжета этого вечера.
В комнату вошёл человек в бронежилете и с оружием, но без маски. В нём Полл, к ещё большему своему изумлению, узнал старину Кастора. Кастор сел напротив Полла и улыбнулся. Тут Полл уже не выдержал и закричал:
— Кастор, что, чёрт тебя дери, тут происходит?
— А происходит тут то, что я в очередной раз спасаю твою задницу, — мягко сказал Кастор. И, обращаясь к своим подручным, властным голосом приказал: — Отпустите его.
Двое отпустили Полла и отошли в сторону. Полл потёр левое плечо и, глядя исподлобья на Кастора, спросил:
— Что с Альхеной?
— Она напоролась на мой вирус, который я подсадил сегодня
тебе в голову.
— Я не понимаю.
— А всё очень просто, — весело сказал Кастор и уселся поудобнее. — На самом деле, ты ничем не болен. Они как-то умудрились взломать твой мозг и подсадить тебе вирус, который убеждал тебя в том, что у тебя какой-то синдром. Кроме того, этот вирус позволял им незаметно копировать твою память. Именно это она и пыталась сделать только что. Она хотела сделать копию твоего сегодняшнего дня, копию всех задач, над которыми ты работал. Вот только она не учла, что их вирус я из тебя уже вычистил и добавил свой. Я назвал его «Кастор-дог», — он заговорщицки подмигнул Поллу. — Когда кто-то пытается открыть закладку в твоей голове, «Кастор-дог» начинает есть его мозг изнутри. Результат ты видел.
Полл, кажется, начинал понимать.
— А доктор Васат…
— …вовсе никакой не доктор. Ты был его первым и последним пациентом. Он слил у тебя из головы всё, чем ты занимался последний месяц. Его мы уже тоже взяли. К сожалению, слишком поздно — он уже успел продать информацию, и теперь утечку не остановить. Придётся отменять соревнования.
В Полле начинала закипать злость. Его развели как мальчишку. Он посмотрел на Кастора и решительно сказал:
— Нет, соревнования мы отменять не будем. Мы подготовим новые задачи.
— А успеете? Сколько задач вы можете готовить одновременно?
Это был непростой вопрос. По правилам соревнований, каждую задачу должны готовить ровно два человека: один должен написать условие, а другой — подготовить набор тестов. Как правило, составители задач специализировались на чём-то одном, но были и универсалы. Времени до начала соревнования оставалось очень мало, поэтому каждый человек мог поучаствовать лишь в подготовке какой-то одной задачи.
Кроме того, чтобы полностью исключить возможность конфликтов между составителями, разница рангов людей, готовящих задачу, должна в точности равняться двум. Поллу срочно требовалось ответить на вопрос — какое же максимальное количество задач программный комитет успеет подготовить к соревнованию?
Исходные данные
В первой строке записано число n — количество составителей задач в программном комитете (2 ≤ n ≤ 1000). Каждая из следующих n строк содержит имя человека, его специализацию и его ранг, разделённые пробелами. Имя человека состоит не более чем из 20 латинских букв. Имена всех составителей задач различны. Специализация указывается одним из трёх слов: «statements», «testdata» или «anything», соответствующих людям, пишущим условия задач, людям, готовящим наборы тестов, и людям, способным заниматься и тем, и другим. Ранг составителя является целым числом от 3 до 1000.
Результат
В первой строке выведите максимальное количество задач, которое можно успеть подготовить к соревнованию. Для каждой задачи в отдельной строке выведите два имени: имя составителя, пишущего условие, и, через пробел, имя составителя, готовящего набор тестов. Если существует несколько способов подготовить задачи, выведите любой.
Пример
исходные данные | результат |
---|
7
Poll anything 8
Tejat statements 6
Mebsuta testdata 6
Propus testdata 4
Alzir anything 7
Mekbuda anything 3
Dirah testdata 9 | 3
Poll Mebsuta
Tejat Propus
Alzir Dirah |
Автор задачи: Павел Атнашев
Источник задачи: NEERC 2009, Четвертьфинал Восточного подрегиона