Блог пользователя Sammarize

Автор Sammarize, 14 лет назад, По-русски
1. День первый.

Мы с Колей пришли, зарегистрировались. Потом открытие и техническое совещание. Ничего нового не услышали =) А вот потом пробный тур, и это было существенно! Во-первых, не буду вдаваться в подробности, но пришлось приложить существенные усилия для того, чтобы можно было использовать компилятор С++ из-под фара. Во-вторых, на нашей клавиатуре пробел нажимался пример один раз из двух =) Мы заявили об этом, спросив, можно ли заметить клавиатуру? 

Нам ответили, как в анекдоте: "можно, заменяйте. Только сейчас, завтра будет нельзя". Как будто мы с собой привезли клавиатуру на этот случай) Ну, в общем, пришлось обратиться к оргкомитету лично, чтобы нам заменили клаву на нормальную.


2. День второй.
Сначала я с печалью понаблюдал, как Коля в TopSpeedCoder не успел сдать задачу D и вылетел с 10 места. Он пришёл в зал совещаний, мы успели пообсуждать задачи. Потом техническое совещание по Code Warriors Challenge. Нам рассказали суть задачи (впрочем, она была описана в книжечке, которую нам выдали ещё на регистрации, то есть, думать об этом можно было уже день как). Если вкратце, надо было написать бота, который бы управлял Карлсоном, который может летать и стрелять в других карлосонов телевизорами и плюшками, и в процессе этого собирать варенье. Выигрывает Карлсон, собравший больше всех варенья.

К концу тех. совещания приехал Саша. Удивился тому, что над задачей можно было думать уже целый день =) После этого было время пообедать в местной столовой, и потом - Code Warriors Challenge.

В отличие от Всесиба, в течение всего тура было ощущение, что мы занимаемся делом. Сначала Саша придумал, что он должен бегать туда-сюда по земле, всё время поворачиваться и стрелять, когда есть, в кого. Посмотрели - получается хреново: не достаёт выстрелами до тех, кто наверху. Решили, пусть бегает на высоте 0.5. Стало лучше, он стал попадать. Потом сделали точную стрельбу - написали пару формул. Правда, допустили баг, который я заметил уже после тура, на следующий день: мы в одном месте забыли взять по модулю, из-за чего он иногда выбирал неправильный корень квадратного уравнения. То есть, находясь вплотную с другим карлсоном, он стрелял высоко вверх, так, чтобы пышка или телевизор через 2 секунды упали на него) Потом сделали, чтобы он нормально летал за бонусами, а не по спирали =) Под конец контеста решили поднять его на высоту 0.7 - так он был ближе к карлсонам, которые летали на самом верху. За три минуты до конца успели затестить то, что получилось - взяли Донецкого бота, Московского и, кажется, Ижевского, и он их порвал, забрав себе больше половины общего количества варенья. Удовлетворившись, послали) После конца взяли троих финальных ботов, набравших наибольшее количество варенья, и наш бот с трудом вышен на 2 место среди них =/

В общем, ощущение осталось непонятное и странное)

3. День третий.

Основной тур.

Встали в 9, в течение часа ехали от гостиницы до ЮФУ, по дороге пытаясь найти место, чтобы поесть. В итоге остановились на местной столовой. Всё в Таганроге открывается в 10 утра, не раньше! Поели, потом попили чай/кофе в кафетерии в той же столовой.

И, наконец, главное действие - основной командный турнир.


Саша сразу увидел стандартную задачу А (Хиппимобиль), рассказал решение стал её писать. Тем временем я увидел простую задачу В (монополии), но понял, что лучше найти задачи, которые будут писаться проще, и отложил её. Потом я увидел более простую задачу G (море дырок), показал Саше. Он мне показал, что эта задача не такая простая, как мне показалось, и продолжил писать А, а я стал думать, как нормально писать G. Тем временем Коля обнаружил очень простую задачу К (Вудсток), рассказал мне решение, мы согнали с компа Сашу и Коля быстро закодил К и сдал.

Мы посмотрели в монитор - мы девятые, у всех по одной задаче. У нас решено 4 задачи. Саша сел обратно дописывать А.

Быстро дописал и сдал. В мониторе вышли на первое место, обогнав Волгоград по времени.

Дальше мы с Сашей обсудили, как писать G, и он сел её писать, а Коля тем временем нашёл простую задачу С и решил.

Пока Саша писал G, Коля рассказал мне решение, я согласился, и Коля стал его продумывать. Я тем временем стал читать другие задачи.

Саша сдал G, посмотрели в монитор - мы там вторые по времени, отстаём от Донецка. Мы не успели увидеть, что Донец на той же минуте сдал четвёртую задачу)

Коля сразу же сел писать С, а я тем временем прочитал Е (HAL 9000). Это была простая математическая игрушка, я решил её с прочтения и рассказал решение Саше. Пока Коля дописывал С, у Сашы было немного времени, чтобы продумать решение. Мы решили не выводить формулу для ответа, а просто проитерировать. Коля сдал С, это была наша 4 задача, а у Донецка уже было 4 к тому моменту. И мы увидели, что Донецк сдал задачу I (вторая попытка). Саша сел писать Е. Тем временем, Коля сообщил мне, что читал I, и там очень неприятное условие. Я прочитал, условие неприятное, но понятное. Понятно, что делать, надо просто закодить. В общем, задача для Саши, подумал я. Саша быстро написал и сдал E, это пятая задача, пока всё с плюса. Смотрим в монитор, у Донецка пять задач, сданных в первый час, они опережают нас по времени.

Я показал Саше I, он немного подумал, как её писать и стал писать. Мы с Колей, тем временем, смотрели в остальные задачи. Наиболее понятной мне показалась задача F (турнир), я стал её решать. И довольно быстро разобрался, как она решается. Стал рассказывать Коле, и видим - нестыковка получается: в моём решении ответа "NO" не бывает, а в тестах он есть. Перечитали условие - действительно, условие я понял немного неправильно. Но ничего страшного, решение не стало более сложным, просто немного другим. Я рассказал новую версию, доказал, что работает, Коля согласился, и сразу же придумал, как легко это написать. Тем временем Саша дописал I и послал. Пришёл, если не ошибаюсь, WA. Саша 10 секунд смотрел в код, исправил размеры массивов, и перепослал - Ас =) Смотрим в монитор - у нас 6 и у Донецка 6, они по-прежнему лидируют по времени. Неудивительно, если они каждую задачу сдают раньше нас, и тоже почти всё с плюса =) Посмотрел, что такого Донецк решил, что мы не решили: оказалось, задачу В.

Коля сел писать F, а я посмотрел в В. Глядь - а я ж её решил в самом начале контеста! Рассказал решение Саше, он согласился. Некоторое время мы обсуждали, как бы это попроще написать. Наконец Саша пришёл к какому-то наиболее удобному для себя варианту, и стал продумывать код. Я, тем временем, стал копаться в четырёх нерешённых задачах. Это были: задача D (конвеер), там где надо было как-то за O(NK) работать с битовыми масками, задача L (в поле ягода навсегда), там, очевидно, какая-то хитрая динамика, где надо было бы вовсю попользоваться тем, что поле периодично, и делать не за O(KL), а за O(MN). Задача H (студия звукозаписи), в которой я с трудом прочитал и понял условие, и задача J (точки). Наиболее перспективными мне показались задачи L и J. Тем временем, Коля дописал и сдал F, седьмая задача (у Донецка тоже 7), и Саша пошёл писать В. Мы с Колей немного пообсуждали задачу D и задачу L, думали, как писать L, чтобы быстро работало. Потом я стал думать над J, а Коля, кажется, над L. Тем временем, Саша сдал В в 2:58, у нас оказалось 8 задач, у донецка тоже 8, у Волгограда 7. Перед нами были 2 часа и 4 сложные задачи.

Саша потребовал, чтобы я хорошенько разобрался в Н и проверил понимание условия на семплах (и ведь прав был!). Я прочитал, раборался, проверил. Но желания решать её эта задача всё равно не вызывала, и я вернулся к J. Ещё немного подумав и разобравшись с J, я вроде примерно понял, как обойтись поиском в глубину, чтобы проверять, какие точки активны, а какие - нет. Я рассказал это Коле, мы вроде поняли, как писать, и Коля пошёл писать. Тем временем, мы с Сашей посмотрели на L. У нас одновременно возникли какие-то идеи, и, немного пообсуждав, мы придумали, как это довольно просто делать за O(NK). По времени должно было проходить.

Тем временем Коля дописал J (это было незадолго до frozen), и у него не заработало. Саше ещё надо было время на обдумывание L, и мы стали искать баг с компом. Сделали отладочный вывод, увидели, что он не видит, что определённая клетка находится в окружении. Саша попросил комп, мы распечатали код и отладочный вывод, и стали читать код. За следующие полчаса мы, постоянно мешая Саше, нашли примерно 4 бага коде, и обрели правильное полнимание условия. В результате этого, программа наконец стала работать на всех семплах. Мы послали и получили TL 8. Это было примерно за 20 минут до конца.

Мы всё ещё надеялись сдать две задачи, поэтому Саша сел перепечатывать код L, который он уже практически написал на бумажке. Коля придумал, как избавиться от одного из 4 dfs'ов, исправил, перепослал - TL 8. Саша написал первый, самый простой кусок решения, и стало понятно, что задачу L мы уже не сдадим. Стали втроём оптимизить J. Увеличили размер стека, понаставили break'ов, стелали ещё 4 попытки, но тщётно - TL 8 так и остался нашим лучшим результатом по этой задаче.

Конест закончился, мы вышли. Нашли Донецк и Волгоград, выяснили, что Донецк сдал ещё одну задачу - H, за которую мы практически и не брались, а Волгоград финишировал с восемью. Приходилось рассчитывать на второе место.

4. День четвёртый.
Результаты и награждение.
Впечатление от результатов CWC - полный рандом =) Очень хотелось бы все матчи проводить по 10 раз, и суммировать результаты, или и вовсе устраивать чемпионат - это было бы, конечно, не так зрелищно, но справедливо. Но, поскольку мы не знаем, какие были бы результаты, если бы так и сделали, то жаловаться на несправедливость было бы странно)
Награждение, как награждение. Лучше, чем в Новосибирске =)
Призы заслуживают отдельного внимания =) Не считая диплома в рамочке на команду и трёх обычных дипломов для участников, а так же медалей, нам выдали четыре (!) попарно различных (!!) приза =) Мы с Колей забрали себе сумку для CD, микроSD и наушники, а геймпад, разумеется, достался Саше, который улетел в Питер ещё вчера)

Общее впечатление - всё вполне прилично организовано, не считая фейла с призами и рандома на CWC. Спасибо организаторам)
  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Интересный отчет, только многие не догадываются, кто такие Коля и Саша.
Пусть знают, что это kimank и udalov
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А как осуществлялся выбор представителя команды, идущего писать TopSpeed? Не хочу никого обижать, но рейтинг у товарища udalov чуть-чуть кажется большим :-)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну, во-первых, как можно заметить из поста, udalov приехал туда, когда соревнование TopSpeedCoder уже закончилось. Во-вторых, рейтинг на Codeforces мало о чём говорит - у товарища kimank, например, последний написанный раунд был полгода назад. А я пока недостаточно серьёзно отношусь к соревнованиям codeforces, поэтому менее ответственно подхожу к раундам. Кроме того, как можно заметить, на TopCoder' распределение рейтингов несколько иное: Sammarize, kima и denton соответственно.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Кроме рейтинга, на выбор "спидкодера" могут влиять и другие факторы: умение быстро "въезжать" в условия, быстро кодить простые задачки и т.д. Поэтому интересно, кто чем руководствовался. А строчка "к концу тех. совещания приехал Саша" еще не говорит, что все предшествующее время он не находился в Таганроге :)


        >> А я пока недостаточно серьёзно отношусь к соревнованиям codeforces

        ИМХО зря. Мне кажется, он лучше отражает умение решать олимпиадные задачки в духе ACM (все-таки, acm-style принято считать "первичным" форматом). Хотя рейтинг, разумеется, у многих еще не устоялся, и до написания хотя бы 15-20 раундов обращать на него серьезное внимание вряд ли стоит...

        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ага, ну да. Верно, что мы ориентировались в основном на то, кто сможет быстрее закодить несколько простых задачек - а рейтинг как здесь, так и на ТС отражает несколько иное.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Неудачное название топика. Можете переименовать так, чтобы в названии было отражено слово "впечатления" и название олимпиады?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А что не так с награждением в Новосибирске?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Как по мне, в Таганроге оно проходило чуть более "феерично". А устрашающий вид переходящего кубка воодушевлял зрителей и участников... :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В Новосибирске награждали все 50 команд, начиная с конца. То есть, каждую команду вызвали, перечисляли состав, пожимали руки, и говорили: "Хлопайте, ну, хлопайте, ну что же вы не хлопайте?". Это происходило медленно и весьма скучно. Слава богу, что хоть разбавили демонстрацией лучших решений первого тура. В Таганроге, конечно, вручали похвальные грамоты за активное участие всем (или всем, кому не досталось что-нибудь иное), но это происходило быстро и публика хлопала или не хлопала исключительно по собственному желанию.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Еще огромной проблемой награждения в НГУ было то, что награждение проводил человек, который имеет минимальное отношение к олимпиадному программированию.
    Шли с конца и, когда вызвали НГУ-1, мы поняли, что мы стали лучшей командой Сибири и получим приятные денежные премии. Но тут, замечательный анонсер, который вел церемонию награждения, сказал, что НГУ-1 - лучшая команда Сибири. Мы просто потерялись в догадках. Учитывая, что нас вызвали только спустя 4 места, мы вообще не могли понять, что же происходит. Когда вызвали нас, то поправились и сказали, что НГУ-1 - лучшая команда (Внимание!!!) Новосибирска и они получают точно такую же премию. Кто-то удачно пошутил, что если бы команда из другого новосибирского ВУЗа оказалась выше, то наградили бы лучшую команду НГУ точно такой же премией.
    Вообще, по ходу награждения анонсер совершал кучу ошибок, коверкал имена, фамилии, названия команд. В самом конце награждения он преподнес фатальный сюрприз - трехкратного победителя этой олимпиады (три года подряд выигрывает, могли бы и запомнить уже) представили, как Владимира Исенбаева! Не думаю, что ему было приятно, когда на награждении прочитали не его имя.
    Из минусов в Новосибирске еще можно выделить комнаты в общежитиях, в которых нам приходиться проживать. Облупленная краска, отсутствие туалета (хотя бы одного на секцию), ночью достаточно холодно в комнате. Некоторым повезло, не каждый год все эти составляющие выпадают одновременно.
    Зато в Новосибирске качественная подготовка олимпиады с технической стороны. Уж точно нет никаких ограничений на количество страниц для печати. Нашей команде 10 страниц напечатать - это два первых часа на контесте поработать. Два кодера в команде: затупил - печатайся. Видимо организаторы предполагают, что хитрые программисты потратят годовой запас бумаги - пусть печатают 8-ым шрифтом!