Мой опыт спортивного программирование и CodeJam

May 24, 2010 18:16

Все началось еще на младших курсах университета, тогда я попал в "дурную" компанию олимпиадников нашего ИжГТУ. Хорошо это или нет я и сейчас не знаю, но тогда меня не впечатлили перспективы по 6 часов в день уделять тренировкам ради мифического шанса поехать на финал ACM. Поэтому в группу для обучения я не стремился, хотя меня и приглашали.

Но знакомство не прошло даром. Уже через год я возглявлял команду студентов, которая взялась переписывать существующую олимпиадную систему. Сейчас я понимаю разрушительную силу команды из студентов 2-3го курса, которые пишут какую-либо систму. Они игнорируют все советы и верят в лучшее. Мы это делали в течении оставшихся 3х лет, и даже выпустили релиз. А еще я про эту систему умудрился рассказать на конференции Свободное ПО в высшей школе, в Переславле.

К сожалению нашу систему убили современные технологии - JavaScript и Ajax, именно это стало главным преимуществом наших конкурентов http://bacs.cs.istu.ru Но и эта система уже изжила себя, а смены ей пока не видно. Можно сказать что это был первый проект под моим техническим управлением, пусть он был неудачным, но на ошибках надо учиться.

Но это все лирика. Один из выпускников нашей олимпиадной команды сейчас работает в Microsoft (Bing Team) и добивается своих амбициозных целей. К сожалению он является редким исключением для нашего факультета. И глядя именно на него мне иногда хочется побаловать свой мозг олимпиадными задачками, т.к. в глубине души мне интересно - Что было-бы если я пошел в группу подготовки олимпиадников?...

Когда-то я увлекался задачками Project Euler (http://projecteuler.net/), потом стал участвовать в CodeJam (http://code.google.com/codejam). Почему именно они - там нет жестких критериев на время выполнение программы и потребляемую память. В этом году я уже 3ий раз участвовал в CodeJam. 3 года назад я поставил себе цель - каждый год проходить на один этап дальше (а там их 4, потом полуфинал/финал), но цель пока осталась недостигнутой.

  • 2 года назад я успешно прошел квалификационный раунд, но не смог пройти следующий круг отборочных. Причиной неудачи стала невнимательность к условию задачи.
  • 1 год назад я успешно прошел квалификационный раунд, но не смогу участвовать в следующем круге. Я был где-то offline:)
  • В этом году я вновь успешно квалификационный раунд. На следующем этапе (Round B) решил только 2 задачи из 3х предложенных. Надо признать что обе задачи оказались очень простыми и их решило около 80%. Для квалификации надо было решить 2 задачи на 12 минут быстрее чем я, а в идеале решить все 3 задачи. 3ью задачу я не понял как решать даже мельком прочитав решение, поэтому во время раунда шансов у меня не было. Но вот на 12 минут быстрее решить первые 2 задачи я мог, меня подвела Java и мои громоздкие шаблоны чтения/записи данных.

Сейчас хочу найти время чтобы разобрать оставшиеся задачи этого года, оптимизировать мои шаблоны чтения/записи данных (а может и язык сменить). И через год я вновь вернусь:)

Мысли вслух, acm

Previous post Next post
Up