Парфенов Владимир Глебович
ТРЕТЬИ ПОЛУФИНАЛЬНЫЕ СОРЕВНОВАНИЯ ЧЕМПИОНАТА МИРА ПО ПРОГРАММИРОВАНИЮ В САНКТ-ПЕТЕРБУРГЕ
Ежегодный студенческий командный чемпионат мира по программированию среди сборных команд высших учебных заведений (ACM International Collegiate Programming Contest) проводится наиболее авторитетной в компьютерном мире международной организацией ACM -Assoriation for Computing Machinary («the First Society in Computing»), начиная с 1977 года. Эти соревнования являются самыми престижными в мировом компьютерном сообществе интеллектуальными состязаниями молодой программистской элиты. Соревнования рассматриваются ведущими компьютерными фирмами как источник их пополнения наиболее квалифицированными кадрами и традиционно поддерживаются крупнейшими компьютерными корпорациями. В последние годы четыре сезона подряд генеральным спонсором чемпионата была корпорация Microsoft, вложившая в организацию соревнований 27 миллионов долларов. Начиная с сезона 1997/98гг., генеральным спонсором стал главный конкурент Microsoft - корпорация IBM, вступившая с ней в жесткую борьбу за лучшие головы планеты.
Соперничество этих гигантов ярко проявилось на финале соревнований прошедшего сезона, состоявшемся в Атланте в начале марта. На нем сотрудниками IBM была организована мощная агитационная компания по привлечению участников финала на работу в эту корпорацию, подкрепленная значительными финансовыми средствами. Такие энергичные действия конкурента застали врасплох представителей Microsoft, которые на предпоследнем финале, где они выступали в качестве генеральных спонсоров, сумели привлечь на работу в Microsoft около трети участников.
В сезоне 1998/99 гг. в чемпионате принимают участие около 1500 команд из
1998-99 A CM Northeastern European Regional Programming Contest Problem A "False coin" Input file COINJN Output file COIN.OUT Time limit 10 seconds per test The "Gold Bar" bank received information from reliable sources that in their last group of N coins exactly one coin is false and differs in weight from other coins (while all other coins are equal in weight). After the economic crisis they have only a simple balance available (like one in the picture). Using this balance, one is able to determine if the weight of objects in the left pan is less than, greater than, or equal to the weight of objects in the right pan. In order to detect the false coin the bank employees numbered all coins by the integers from 1 to N,
ведущих вузов мира.
Согласно выработанным за более чем двадцатилетнюю историю правилам проведения соревнований, команде, состоящей из трех участников, предоставляется один компьютер и предлагается в течение пяти часов решить максимальное количество из предложенных задач, число которых обычно лежит в диапазоне от 6 до 8. Побеждает команда, решившая наибольшее число задач, а в случае равенства числа решенных задач - команда, затратившая меньше времени.
Схема организации чемпионата мира включает три этапа: четвертьфинальный, полуфинальный и финальный. На полуфинальных этапах команды соревнуются в сезоне 1998/99 гг. в 25 региональных группах, среди которых распределены вузы стран всех континентов. Команды - побе-
thus assigning each coin a unique integer identifier. After that they began to weight various groups of coins by placing equal numbers of coins in the left pan and in the right pan. The identifiers of coins and the results of the weightings were carefully recorded.
You are to write a program that will help the bank employees to determine the identifier of the false coin using the results of these weightings.
дительницы полуфинальных состязаний выходят в финал, который состоится 11 апреля 1999 г. в Эйндховене (Нидерланды) (впервые за 23 года он пройдет за пределами США). В финале примут участие 62 команды из ведущих университетов мира. По результатам финальных соревнований определяется команда - чемпион мира, а также команды - чемпионы континентов.
Россия впервые получила право на организацию собственной полуфинальной Северо-Восточной Европейской группы в сезоне 1996/97 гг. Организацию соревнований прошедших сезонов Директорат чемпионата поручал Санкт-Петербургскому государственному институту точной механики и оптики (техническому университету), студенты которого успешно выступают в чемпионате. Северо-Восточный Европейский регион включает страны бывшего СССР.
Итоги прошедших в прошлые годы и результаты уже закончившихся отборочных четвертьфинальных состязаний сезона 1998/99 гг. показали огромный интерес вузов к этим соревнованиям. В частности, в этом году было организовано шесть четвертьфинальных региональных групп: Дальневосточная (вуз-организатор - Дальневосточный ГУ), Уральская (Уральский ГУ), Южно-Поволжская (Саратовский ГУ), Центральная (Рыбинская авиа-ционно-технологическая академия), Северо-Западная (СПбГИТМО(ТУ) и СПбГУ) и Западная (Белорусский ГУ). Всего в четвертьфинальных соревнованиях приняли участие 164 команды из 101 вуза, представлявших практически все ведущие классические и технические университеты России, а также университеты Белоруссии, Киргизии и Эстонии.
Таким образом, к настоящему времени эти соревнования превратились в крупнейший за все последнее десятилетие по географии и числу участников студенческий форум России и стран ближнего зарубежья. Северо-Восточная Европейская региональная полуфинальная группа стала самой большой в чемпионате мира по числу участвующих команд, что позво-
лило увеличить число мест в финале для этой группы с двух до пяти.
Как и в предыдущие годы, в рамках соревнований была проведена беспрецедентная акция по обеспечению участия в состязаниях в реальном масштабе времени команд сибирских вузов с использованием сети Команды ведущих вузов Барнаула, Новосибирска, Томска, Омска, Красноярска, Владивостока и других сибирских городов (29 команд) разместились во время проведения петербургского тура (в Аничковым дворце собрались 57 команд) в узле федеральной университетской компьютерной сети расположенном в Алтайском государственном техническом университете, и соревновались под наблюдением представителей жюри, которые специально прибыли в Барнаул.
Полуфинальные соревнования дали яркий пример использования сети для формирования единого научно-образовательного пространства России и, как следствие, укрепления единства и целостности Российского государства.
По результатам состязаний должны были быть определены пять команд - участниц финала чемпионата мира, а также -команда - чемпион России по программированию.
В предыдущие два сезона чемпионами России становились петербургские команды: государственного университета и института точной механики и оптики (технического университета), которые подошли к этому сезону в сильно обновленных составах. По правилам чемпионата мира АСМ студент может выступать в финале только два раза (независимо от
результатов выступлений его команды), и петербуржцы уже «положили» большинство своих звезд в финальных сражениях предыдущих сезонов.
В прошлом сезоне в финале выступали команды четырех российских вузов: СПбГУ (2 место, 6 решенных из 8 предложенных задач), СПбГИТМО (13 место, 5 решенных задач), МГУ (20 место, 4 решенные задачи), УрГТУ (23 место, 4 решенные задачи). По числу выступивших в финале команд Россия заняла второе место после США, опередив Китай (3 команды). В ведущую группу из 15 команд, решивших больше половины предложенных задач (то есть 5 или 6), вошли 4 американские команды и по 2 команды из России (СПбГУ и СПбГИТМО), Китая и Канады.
Состязания проходили в Санкт-Петербурге в третий раз.
На соревнованиях присутствовал генеральный директор чемпионата мира
1998-99 A CM Northeastern European Regional Programming Contest Problem C "Fence" Input file FENCEIN Output file FENCE.OUT Time limit 10 seconds per test There is an area bounded by a fence on some flat field. The fence has the height h and in the plane projection it has a form of a closed polygonal line (without self-intersections), which is specified by Cartesian coordinates (X, Y') of its N vertices. At the point with coordinates (0,0) a lamp stands on the field. The lamp may be located either outside or inside the fence, but not on its side as it is shown in the following sample pictures (parts shown in a thin line are not illuminated by the lamp):
The lamp is inside the fence s The lamp is outside the fence
The fence is perfectly black, i.e. it is neither reflecting, nor diffusing, nor letting the light through. Research and experiments showed that the following law expresses the intensity of light
профессор Бэйлорского университета (США) Билл Пучер. На церемонии открытия он объявил об увеличении числа мест, предоставляемых в финале ставшей самой большой в мире полуфинальной группе, до 5, чем вызвал бурю восторга среди лучших молодых программистов стран бывшего СССР.
falling on an arbitrary illuminated point of this fence:
I=k/r,
where k is a known constant value not depending on the point in question, r is the distance between this point and the lamp in the plane projection. The illumination of an infinitesimal narrow vertical board with the width dl and the height h is
dl = 10 • |cos a • dl • h
where Ig is the intensity of light on that board of the fence, a is the angle in the plane projection between the normal to the side of the fence at this point and the direction to the lamp. You are to write a program that will find the total illumination of the fence that is defined as the sum of illuminations of all its illuminated boards.
Пятичасовые соревнования, в которых участвовали 86 лучших команд вузов бывшего СССР, завершились вечером 2 декабря в Аничковом Дворце. Результаты команд отличались исключительной плотностью.
Как и в прошлом году, первой, спустя 17 минут после начала соревнований, решила задачу команда Ярославского государственного университета. За ней последовали команды Белорусского университета транспорта, Гомельского государственного университета и Нижегородского государственного университета.
На 44 минуте команда из Нижнего Новгорода, имевшая в своем составе одну из двух участниц соревнований (вторая девушка выступала за команду Московского авиационного института), первой сдала вторую задачу и возглавила турнирную таблицу. Это место она занимала в течение более двух часов, сдав также первой через полтора часа после начала состязаний и третью задачу. Команда заняла отличную позицию для борьбы за классное место. Однако затем что-то разладилось в команде нижегородцев и за оставшиеся три с половиной часа они не смогли сдать ни одной задачи.
Преследовать нижегородскую команду бросились команды Санкт-Петербургского государственного университета, Белорусского государственного университета Алтайского государственного технического университета, Московского государственного университета и команда первокурсников Санкт-Петербургского института точной механики и оптики, также решившие по второй задаче.
На исходе полутора часов, как уже упоминалось выше, сдала свою третью задачу команда нижегородцев, а за ней в течение 20 минут сдали по третьей задаче
последовательно команды Дальневосточного государственного университета (она вышла на второе место), МГУ-1, БГУ-2, команда первокурсников СПбГИТМО, команды СПбГИТМО-1 и Уральского государственного университета.
Затем в начале третьего часа борьбы, опередив старших товарищей, смелый рывок вперед предприняла амбициозная команда первокурсников института точной механики и оптики, первой решившая четыре задачи, и возглавившая турнирную таблицу. Вызов молодежи приняли опытнейшая команда МГУ-1, ставшая одним из главных сюрпризов состязаний команда Томского государственного университета, команды СПбГУ-1 и БГУ-2, также вскоре успешно сдавшие по четвертой задаче. Однако первокурсники на этом не успокоились и за 15 минут до истечения третьего часа первыми сдали пятую задачу. Как потом выяснилось, первую строчку турнирной таблицы они занимали в течение почти полутора часов. Казалось, еще одно последнее усилие по сдаче шестой задачи - и в их руках звание чемпионов России и путевка в финал. Это могло бы стать главной сенсацией наших чемпионатов, поскольку никогда до этого команды первокурсников не только не выигрывали чемпионаты, но и не выходили в финал. Однако был избран неверный путь решения одной задачи, неправильно понято условие другой - и все оставшееся время (более двух часов!)
юные петербуржцы потратили на отчаянное последовательное «силовое пробивание» тестов для задачи С, так и не завершившееся окончательным успехом.
Только через полчаса после сдачи первокурсниками ИТМО пятой задачи к ним подтянулись их старшие соперники из команд СПбГУ-1 и МГУ-1, также сдавшие по пятой задаче. В это же время, решив четвертую задачу, из глубины турнирной таблицы перешла на восьмое место первая команда ИТМО, до этого, казалось, безнадежно проигрывающая собственным первокурсникам. В середине четвертого часа пятую задачу сдали и студенты из Томска, переместившиеся на четвертое место. Впервые у команды из Барнаульской группы появился реальный шанс выйти в финал.
Спустя две минуты после успеха томских студентов, сдала шестую задачу и утвердилась на первом месте (как потом оказалось - окончательно) первая команда МГУ.
1998-99 A CM Northeastern European Regional Programming Contest Problem D "Parliament" Input file PARUAMJN Output file PARLIAM.OUT Time limit 10 seconds per test New convocation of The Fool Land's Parliament
consists of N delegates. According to the present regulation delegates should be divided into disjoint groups of different sizes and every day each group has to send one delegate to the conciliatory committee. The composition of the conciliatory committee should be different each day. The Parliament works only while this can be accomplished.
Стало ясно, что для поездки в Эйн-дховен придется решать шесть задач. У москвичей остались для решения две наиболее сложные задачи и с учетом нервной и физической усталости реально они могли бы сделать только одну из них. Московские студенты попытались в оставшееся время делать две задачи параллельно, но успеха не добились.
С учетом штрафного времени с первой командой МГУ могли реально соперничать в борьбе за первое место только команда первокурсников ИТМО и первая команда СПбГУ. Однако первокурсники с «молодым задором» делали попытку за попыткой, доведя в конце их общее число до 12, по сдаче одной и той же задачи.
Уверенно выступавшая в первой части соревнований команда СПбГУ, возглавляемая вице-чемпионом мира прошло-
You are to write a program that will determine how many delegates should contain each group in order for Parliament to work as long as possible.
го года опытнейшим турнирным «бойцом» Ильей Мироновым, неожиданно остановилась, за последние час и сорок минут не смогла решить ни одной задачи и едва не оказалась за бортом финала. Кстати, они пытались сдать ту же «роковую» для петербуржцев задачу С, что и первокурсники из ИТМО.
В заключительной стадии состязаний успех в борьбе за выход в финал пришел к командам, сохранившим присутствие духа и проявившим способность бороться за победу до последних минут. За четыре минуты до замораживания таблицы результатов пятую задачу сдала команда Уральского государственного университета и поднялась на пятое «финальное место». Однако через 8 минут ее оттеснила с этого места команда Белорусского государственного университета, тоже сдавшая пятую задачу, но имевшая меньше штрафных минут. Команда Томска с худшим временем оказалась за пределами группы финалистов. Для окончательного решения вопроса о выходе в финал командам, как воздух, была необходима успешная сдача шестой задачи.
И команды БГУ и УрГУ успешно ее решили. За полчаса до конца соревнований шестую задачу сдает минская команда и впервые за всю историю наших состязаний приносит знаменитой белорусской школе программирования третье призовое место. За девять минут до истечения контрольного времени свой уральский характер проявляют ребята из Екатеринбурга. Сдав шестую задачу, они завоевывают для города, педагоги и студенты которого вносят огромный вклад в развитие олимпиад АСМ в нашем регионе и в котором состоялись первые четвертьфинальные соревнования Северо-Восточной Европейской группы, звание вице-чемпионов России. На награждении сообщение о местах, занятых этими командами, было воспринято присутствующими как в высшей степени справедливый итог работы двух замечательных педагогических коллективов, получивших известность еще во времена существования СССР.
Первокурсники ИТМО и студенты СПбГУ, забуксовав со «своими» пятью решенными задачами, чувствовали себя в высшей степени некомфортно, подобно человеку, ухватившемуся за соломинку. «Беда» для первокурсников пришла, как говорится, откуда не ждали. Их опытнейшие товарищи из первой команды (для всех троих это были третьи полуфинальные соревнования, двое выступали в финале прошлого сезона в Атланте) показали, что их несколько рано «списали в тираж» на этих соревнованиях. За сорок минут до конца соревнований они сдали пятую задачу и снова, как и час назад, переместились на восьмое место, а за три минуты до конца - шестую, поднявшись при этом на четвертую строчку турнирной таблицы. Первокурсники ИТМО оказались пятыми и не прошли в финал из-за существующего в чемпионате мира ограничения на число команд одного вуза в финале - любой вуз в финале может быть представлен только одной командой. Пятое финальное место досталось команде СПбГУ, занявшей шестую строчку турнирной таблицы. Таким образом, студенты ИТМО вернули СПбГУ прошлогодний долг - тогда вторая команда СПбГУ уступила по тем же причинам свое место в финале команде ИТМО.
Таким образом, первые шесть мест заняли следующие команды:
Реш. Штрафное
задачи время, мин
Московский университет 6 908
Уральский университет 6 1091
Белорусский университет 6 1093
Санкт-Петербургский
институт точной механики
и оптики - 1 6 1199
Санкт-Петербургский
институт точной механики
и оптики - 2 5 622
Санкт-Петербургский
Университет 5 631
(всего по 5 задач решили 11 команд)
Команда МГУ в составе студентов факультета ВМК Дмитрия Васюры и Виктора Матюхина, а также студента физфака Александра Пономарева впервые стала чемпионом России. Дмитрий и Виктор являются «выходцами» из знаменитой вятской школы программистов, уже в течение многих лет возглавляемой замечательным педагогом Станиславом Михайловичем Окуловым. Саша Пономарев является воспитанником широко известного в России учебного центра «Байтик» из подмосковного города Троицка. Надо сказать, что путь этих ребят к впечатляющей победе не был легок. На прошлогодних соревнованиях их команда выступала в этом же составе и считалась одним из главных фаворитов. Однако выступила крайне неудачно и заняла всего лишь 21 место с двумя решенными задачами. Два года назад на первых полуфинальных состязаниях Витя Матюхин выступал в едва ли не самой сильной за всю историю команде МГУ. Однако эта команда, настраивавшаяся на борьбу только за первое место, пропустила вперед в последний момент решившую четвертую задачу команду факультета ВМК МГУ, за которую кстати выступал тогда Дмитрий Васюра. Этот короткий экскурс в историю показывает, что от неудач не застрахованы даже са-
1998-99 A CM Northeastern European Regional Programming Contest Problem G "Spell checker" Input file SPELLJN Output file SPELL.OUT Time limit 10 seconds per test You, as a member ofa development team for a new spell checking program, are to write a module that will check the correctness of given words using a known dictionary of all correct words in all their forms.
If the word is absent in the dictionary then it can be replaced by correct words (from the dictionary) that can be obtained by one of the following operations:
• deleting of one letter from the word;
мые сильные и тренированные команды и что не надо отчаиваться даже при самых обидных проигрышах.
Из таблицы результатов видно, что, наряду с известными командами, в этих соревнованиях исключительно успешно выступили команды из Сибири и Дальнего Востока. Они, пожалуй, впервые имели реальные шансы попасть в финал.
Команда Томского государственного университета - новый чемпион Сибири и Дальнего Востока, команда Дальневосточного государственного университета -чемпион Сибири и Дальнего Востока прошлого года и команда Новосибирского государственного университета решили по 5 задач и впервые вошли в десятку сильнейших команд региона. Возможно, если бы им досталось чуть-чуть побольше везе-
• replacing of one letter in the word with an arbitrary letter;
• inserting of one arbitrary letter into the word.
Your task is to write the program that will find all possible replacements from the dictionary for every given word.
Л
ния, одна из этих команд могла бы решить шестую задачу и выйти в финал. Будем надеяться, что это случится в будущем году.
Сильно прибавили белорусские команды. Особенно удивила команда Белорусского государственного университета транспорта, впервые выступавшая в полуфинале, но сумевшая на последней минуте сдать пятую задачу и прорваться в ведущую группу команд, решивших по 5 и 6 задач.
По решению жюри дипломами АСМ с указанием занятого командой места были награждены команды, решившие по 5 и 6 задач. Кроме того, были присуждены дипломы Третьей Всероссийской командной олимпиады по программированию. Команды, решившие 6 задач, получили дипломы первой степени, 5 задач -второй, 4 задачи - третьей.
Дипломом организационного комитета и жюри за выдающиеся педагогические достижения в подготовке молодых одаренных программистов был награжден Антон Александрович Суханов - в настоящее время являющийся аспирантом кафедры компьютерных технологий СПбГИТМО и сотрудником отдела программных разработок корпорации Microsoft в Сиэтле.
Генеральный директор чемпионата мира Билл Пучер отметил отличную организацию чемпионата и сказал, что по этому критерию это был лучший полуфинал этого года. На совещаниях был сформирован новый директорат нашей полуфинальной группы, в которую вошли директора шести четвертьфинальных групп и региональный директор полуфинала, которым вновь стал профессор петербургского института точной механики и оптики Владимир Парфенов.
Пожелаем нашим ребятам удачи на финальных соревнованиях!
f
1998-99 A CM Northeastern European Regional Programming Contest Problem F "The dog task" Input file DOGIN Output file DOGOUT Time limit 10 seconds per test
Hunter Bob often walks with his dog Ralph. Bob walks with a constant speed and his route is a polygonal line (possibly self-intersecting) whose vertices are specified by N pairs of integers (Xi, Yi) - their Cartesian coordinates. Ralph walks on his own way but always meets his master at the specified N points. The dog starts his journey simultaneously with Bob at the point (Xj, Yj) and finishes it also simultaneously with Bob at the point (XN, YN). Ralph can travel at a speed that is up to two times greater than his master's speed. While Bob travels in a straight line from one point to another the cheerful dog seeks trees, bushes, hummocks and all other kinds of interesting places of the local landscape which are specified by M pairs of integers (X'j, Yj). However, after leaving his master at the point (Xi, Yi) (where 1 < i < N) the dog visits at most one interesting place before meeting his master again at the point ( Xi+1, Yi+1).
Your task is to find the dog's route, which meets the above requirements and allows him to visit the maximal possible number of interesting places. The answer should be presented as a polygonal line that represents Ralph's route. The vertices of
t.
this route should be all points (Xi, Yi) and the maximal number of interesting places (Xj, Yj). The latter should be visited (i.e. listed in the route description) at most once. An example of Bob's route (solid line), a set of interesting places (dots) and one of the best Ralph's routes (dotted line) are presented in the following picture:
J ■V
ч
/ 2
/ У
л 1 ■У
-
ч а
X
J
НАШИ АВТОРЫ