Жили-были ежики. Обитали они в прямоугольном яблоневом саду размером MxN. Одно это должно было бы насторожить благоразумных ежей. Но эти, видимо, были беспечными и непугаными. И вот в один прекрасный солнечный день, 24 мая, в 14.00, напали на наших ежиков девять программистов из самых разных городов Украины. И как погнали их! Причем, погнали по сложной траектории: разбили сад на квадратные зоны, которые все нужно пройти, передвигаясь из верхнего правого угла только в ближайший правый или нижний квадрат. И задачу поставили собрать как можно больше яблок. Это при том, что известно: с каждого дерева в каждом квадрате может упасть apples [i, j]. Ну, в общем, программистам понятно. А вот бедным ежикам…
(1-ая Киевская Городская Олимпиада по информатике)
Вот такие задачки ожидали финалистов 1-й Киевской Городской Олимпиады по информатике. Учредителями Олимпиады были: Издательский дом «Мой компьютер» (http://www.mycomp.com.ua, http://www.mycomp.udc.com.ua), Всеукраинская общественная организация «Украинский Дисконтный клуб» UDC (http://www.udc.com.ua, http://www.sc.udc.com.ua), Малая Компьютерная Академия Специализированного учебного центра «Перспектива ХХІ век» (http://www.xxi.kiev.ua), Интернет-Сервис Провайдер IT-ПАРК (http://www.itpark.com.ua), а Генеральным спонсором Олимпиады выступила компания AMD Inc. (http://www.amd.com). В разгар первого (отборочного) тура Олимпиады представленный список пополнился Генеральным страховщиком Украинской акционерной страховой компанией «ЭДЕМ», официальным страховщиком II Международного форума экономического развития «Партнерство во имя согласия и развития», а также проектов «Золотая книга Украинской Элиты и «Золотые торговые марки». Наконец, уже на последних этапах к участию в Олимпиаде подключились корпорация Microsoft и российская ASP Linux (http://www.asplinux.ru).
К участию приглашались все читатели «МК», пользователи ПК и учащиеся, чей возраст еще не перевалил за солидный восемнадцатилетний рубеж, а любимым занятием является постоянное углубление знаний по языку программирования C/C++ и операционным системам Unix, Linux и MS Windows,
По результатам отборочного тура назвать Олимпиаду «городской» язык не поворачивается: на нее откликнулось более 40 человек со всей Украины. То ли призы были настолько заманчивыми, то ли любителей программирования на С/С++ у нас так много? В общем, в финале были представлены Чернигов и Одесса, Винница и Львов, Киев и Жмеринка.
Кстати, отобрать финалистов было крайне сложно: все участники прислали детальные и интересные ответы на вопросы первого тура. Успешно справились они и с решением задач по программированию. Поэтому жюри особо оценивало оригинальность ответов, личные размышления авторов и самостоятельность мнений.
Итак, за призовые места в последнем туре Олимпиады должны бороться участники, представленные в табл. 1.
К сожалению, единственная представительница прекрасного пола Виктория Борисова из Днепропетровска не смогла приехать на заключительный этап Олимпиады, также не смог посетить Олимпиаду Дмитрий Поволоцкий из Одессы. Посовещавшись на месте и приняв во внимание тот факт, что номером 11 был Владимир Гричина из 9-го «А» класса Винницкой СШ №1, Оргкомитет принял решение допустить его ко второму туру.
Таким образом, нас ожидал чисто мужской турнир.
Ровно в 14.00 председатель оргкомитета Виталий Васильевич Штабовенко объявил о начале заключительного тура Олимпиады и пригласил ребят в компьютерный класс Малой Компьютерной Академии СУЦ «Перспектива XXI век». В центре на столе можно было увидеть призы, за которые предстояло бороться нашим программистам. А призы были интересные…
Оргкомитет Олимпиады совместно с Генеральным страховщиком установили следующие призы для участников и победителей:
1-е место:
процессор AMD Athlon XP;
Office XP Developer, Windows XP;
ASPLinux 7.2 Deluxe Edition;
годовая подписка на журналы «Мой компьютер» и «Мой игровой компьютер»;
Всеукраинская интернет-карточка VIC, Unlimited, с дисконтом UDC и страховкой на 1000 гривен от несчастного случая страховой компанией Галинстрах;
Полис выезжающего за границу с суммой покрытия до $30 000 на непредвиденные медицинские расходы от УАСК «ЕДЕМ»;
Интернет Unlimited на 1 месяц от ISP IT-Park.
2-е место:
процессор AMD Duron;
Office XP Professional, Windows XP;
ASPLinux 7.2 Standart Edition;
полугодовая подписка на журналы «Мой компьютер» и «Мой игровой компьютер»;
Всеукраинская интернет-карточка VIC, 20 юнитов, с дисконтом UDC и страховкой на 1000 гривен от несчастного случая страховой компанией Галинстрах;
Полис выезжающего за границу с суммой покрытия до $30 000 на непредвиденные медицинские расходы от УАСК «ЕДЕМ»;
Интернет Unlimited на 1 месяц от ISP IT-Park.
3е место:
процессор AMD Duron;
Office XP Professional, Windows XP;
ASPLinux 7.2 Express Edition;
полугодовая подписка на журнал «Мой компьютер»;
Всеукраинская интернет-карточка VIC, 10 Юнитов, с дисконтом UDC и страховкой на 1000 гривен от несчастного случая страховой компанией Галинстрах;
Полис выезжающего за границу с суммой покрытия до $30 000 на непредвиденные медицинские расходы от УАСК “ЕДЕМ”;
Интернет Unlimited на 1 месяц от ISP IT-Park
Похвальный отзыв 1-й степени:
Интернет Unlimited на 1 месяц от ISP IT-Park;
Office XP Ukrainian trial version (украинская версия с ограниченным сроком действия);
Acronis OS Selector 5.0;
Всеукраинская интернет-карточка VIC, 5 Юнитов, с дисконтом UDC и страховкой на 1000 гривен от несчастного случая страховой компанией Галинстрах;
Полис выезжающего за границу с суммой покрытия до $30 000 на непредвиденные медицинские расходы от УАСК «ЕДЕМ».
Ребятам были вручены именные конверты с заданиями последнего тура Олимпиады. В течение трех часов финалистам предстояло дать письменный ответ на два теоретических вопроса и написать программу решения двух математических задач.
Все три часа программисты не поднимали головы. Их нельзя было отвлечь даже на маленький кофе-брейк. Видимо, программисты действительно чем-то отличаются от простых смертных. Наконец время истекло, и результаты работ были собраны на сервере оргкомитета.
Мне удалось поговорить с нашими финалистами. Чем привлекает их программирование на С/С++? На этот вопрос все отвечали по-разному.
Кого-то «жизнь заставила»: в школе постоянно выдвигали на олимпиады по математике; сначала было трудно, а потом стало получаться и понравилось.
Александру Билому перспективность этого языка программирования растолковал старший брат, технический директор коммерческой фирмы.
А вот, например, Борис Яковлев впервые начал программировать в Малой Компьютерной Академии. И хоть срок его активного увлечения С++ невелик, результаты налицо.
Некоторые ребята уже пробуют что-то создавать самостоятельно, например, пишут браузеры. Другим просто нравится решать различные программные головоломки. Как правило, у всех за спиной опыт программирования на Паскале или Visual Basic.
И как большинство программистов, они не склонны к болтовне, предпочитая лишний раз «попимпать» по клавиатуре. Ну что ж, удачи им!
Время пролетело незаметно в 17:30 компьютеры были выключены.
Общая фотография на память. Председатель Оргкомитета вручает всем участникам финального тура Интернет Unlimited на 1 месяц от ISP IT-Park.
Жюри отправляется на совещание…
P. S.
В 12.00 27 мая по результатам представленных работ были определены победители (табл. 2). Мы поздравляем победителей и желаем им дальнейших успехов!
Задания 2-го тура:
Теоретическая часть:
1. Что означает ключевое слово virtual и для чего оно служит?
2. Возможно ли (если да, то как Вы себе это представляете) на языке C/C++ написать приложение, которое бы полностью управляло цифровой телефонной станцией и полностью бы выполняло все функции АТС?
Задачи по программированию:
1. Найти таких три целых числа, чтобы сумма кубов двоих из них равна была кубу третьего числа.
2. Ежик. План прямоугольного сада размером MxN разбит на квадратные зоны. В каждой зоне растет по дереву. С каждого дерева любой зоны может упасть несколько яблок. В левом верхнем квадрате находится ежик, который должен дойти до правого нижнего квадрата. В саду есть ограничения относительно способа передвижения: ежик может двигаться из текущего квадрата только в один из двух соседних правый или нижний. Программа должна вычислять максимальное количество яблок, которые ежик может собрать, передвигаясь в нужный квадрат.
Технические условия: План сада задан таблицей apples из m строк и n столбиков. Элемент apples[i,j] таблицы указывает количество яблок, упавших с дерева в зону с координатами i, j. Текстовый файл input.txt содержит в первой строке числа m, n через пробел. В каждой следующей строке содержится по n чисел apples[i,j], разделенных пробелами. Файл output.txt должен содержать одно натуральное число.