Pull to refresh

Comments 82

Не ожидал, что Mail.ru возьмется за организацию мероприятий такого плана. Молодцы)
Побольше бы таких мероприятий. Талантливых людей в России хватает, им просто нужны возможности для развития.
Молодцы! Так держать!

А что на 7-ой фотке делает растение из PvZ? :)

Кто-то из кодеров принес, вместо кактуса! :)
Почитал задания… Молодцы ребята ;-).
Особенно порадовало, для меня было неожиданностью —
"Решением задачи является программа, написанная на одном из допустимых языков программирования: Java, Python, C/C++, C#, Perl."
Я почему то всегда думал, что такие мероприятия исключительно на С/С++ проводятся.
А почему неожиданность? На некоторых олимпиадах даже Pascal разрешают (а где то даже PHP 0_о)
Pascal — вполне нормальный язык, на котором можно реализовать все, что можно реализовать, например, на C++. Другой вопрос — сколько времени уйдет на реализацию :).

Странно, что в списке допустимых языков python — в олимпиадном программировании на нем писать довольно тяжело — интерпретируемые языки (java в том числе) не всегда укладываются по времени.
У каждого языка свои преимущества. В спортивном программировании не стоит сильно привязываться к одному языку, нужно знать и «не родные» языки хотя бы на среднем уровне(написание циклов, методов и т.п.), иногда может очень пригодиться. Например, Java имеет встроенную поддержку длинной арифметики, в то время как на C/C++/C#(BigInteger появился только в 4 версии фреймворка) приходится писать ручками, на что уходит драгоценное время.
Полностью согласен. С другой стороны, на командных олимпиадах достаточно, чтобы Java на среднем уровне знал только один человек, который и будет писать длинную арифметику в случае необходимости.

Мне, признаться, так и не удалось «пересесть» на Java, потому что для коротких задач писать довольно объемный листинг кода со стринг токинайзером довольно некомфортно :).
А вы попробуйте вместо StringTokenizer использовать java.util.Scanner, станет намного удобнее.
Scanner проигрывает, когда надо например быстро прочитать из файла миллион чисел
Вполне возможно, но зачастую скорость чтения входного файла непринципиальна, а вот скорость и удобство написания этой части кода со сканером выше.
Верно, поэтому StringTokenizer'ом приходится пользоваться. Бывает, что со Scanner'ом решения просто в TL не укладываются.
Если вы от одного использования j.u.Scanner не укладываетесь в TL, наверное вообще не стоит переводить вход через уровень строк.
char c; int next = 0;
while ((c = System.in.read()) != -1)
	if (c!= ' ')
		next = next*10 + (c - '0');
	else {
		target_array[++i] = next;
		next = 0;
	}
}

Хотя никогда не сталкивался с такой проблемой.
только переменная c типа int, конечно
UFO just landed and posted this here
Ну вот Митричев использует код повторно.
а вообще быстрее и не переходя на уровень строк использование BufferedReader и StringTokenizer
Интересно как, когда StringTokenizer конструируется из String.

Честно говоря, из комментария выше впервые о нем узнал, что вы там нашли не пойму. String.split() на крайний случай — то же самое по смыслу и в 3 раза короче.
участник не обязан писать все задачи на одном языке.
прикинув сложность решения, можно понять, имеет смысл писать его на питоне или нет.
простые задачи на питоне пишутся короче и быстрее, а скорость написания важнее скорости работы, лишь бы последнее укладывалось в лимит.
(если что, я однажды выходил в финал Google Code Jam, используя только питон)
а скорость написания важнее скорости работы, лишь бы последнее укладывалось в лимит.

Буквально позавчера мы с командой закончили участвовать в «зеркале» Петрозаводских сборов (подготовка перед ACM). На этих задачах python (2.5) по времени валился только так, если решение было сложнее O(NlogN). Об использовании длинной арифметики и словарей даже говорить не приходится :).

По моему скромному мнению, лучшее решение для олимпиадного программирования — все-таки C++ (разумеется, при разрешенном использовании stl) в связке с java для задач с BigInt'ами.
это сильно зависит от набора задач.
на некоторых контестах ограничения такие, что скриптовые языки действительно присутствуют «для галочки».

в обсуждаемом же соревновании на питоне спокойно писались квалификации и минимум половина задач с отборочного раунда.
на финале да, он скорее остался чисто по инерции.

я в качестве запасного языка использую java (для трудоемких задач, или если питон запрещен)
Верно. К слову, на «солидных» контестах задачи составляются так, чтобы использование скриптовых языков не давало каких-либо серьезных преимуществ.

В любом случае, «на вкус и цвет...», как говорится ;).
UFO just landed and posted this here
Палку в сторону Pascal кидаю обычно те, кто никогда на нем ничего не писал.
Эта ситуация не только в отношении Pascal. По жизни — самые ярые противники чего бы то ни было частенько, оказывается, не шибко разбирались в проблеме.
Лично я на всех школьных городских и областных олимпиадах писал на Pascal. Ничего не имею против него, как языка, но всё-таки, на более серьёзных олимпиадах я его не часто встречал.
ИМХО, маловато языков. На чем умеешь — на том и пиши! Старый добрый pascal уже вообще, видать, за язык не считают…
У истинного pascal ограничение памяти 64kb. Но на самом деле можно было бы предложить участникам Delphi или free pascal…
А как там сейчас со стандартной библиотекой? Сомнительное удовольствие писать std::map, пока все сдают задачи.
Истинные гении и пишут на паскале, если кто слышал про Короткевича. И поверьте он std::map напишет быстрее чем вы условие задачи прочитаете=)
Истинные гении знают все 5 предложенных языков и под каждую задачу выбирают лучший, исходя из удобства и быстродействия / потребления памяти =)
Гена, вопреки стереотипам, пишет на паскале далеко не все, потому что прекрасно знает C++.
Паскаль же удобен для некоторых видов задач. Например, в нем довольно удобно работать со строками и можно делать массивы, нумерующиеся с отрицательных позиций.
Как раз недавно размышлял об этом…
По сути, олимпиадное программирование — это вершина, в которой может проявиться паскаль. Алгоритмы+структуры данных, больше и не нужно. А для сетевых приложений, 3d графики есть фреймворки, которые помогают быстро штамповать программы в соответствии с требованиями бизнеса. И нет, это не плохо. Это для многих работа. А несколько дней в году можно посвятить действительно интересному занятию — олимпиадному программированию.
Думая, что несколькими днями тут не обойтись. Просто уметь программировать будет не достаточно! Чтобы достигнуть вершин, то потребуются месяцы тренировок, а то и годы.
В паскале банально много букв. Как следствие — скорость написания и изменения кода меньше. Не выгодно.
+ если нельзя использовать среду Delphi например, в Turbo Pascal нет нормальных инструментов отладки. Вернее так, они есть. Но пользоваться ими ужасно неудобно.
Haskell нету. А зря. Там многие олимпиадные штуки делать реально проще. В том числе у него этот ваш BigInt прямо из коробки. Ну и интерактивная разработка добавляет скорости.
Загляденье, как красиво, организаторы старались видать
Может Хабру тоже замутить конкурс такой? Надо побольше хороших дел.
Это действительно было совершенно крутейшее мероприятие. Организаторы просто великолепно поработали, подтверждаю!

Спасибо за хороший пост, и отдельное — за ссылку на мой хабрапрофиль! Получается, я за третье место теперь кроме приза получаю ещё и плюсики в хабракарму, приятно :-)
Я согласен, Очень крутое мероприятие =) мои листочки помогли?
Помимо прочего, иностранцев не было, так как задачи предлагались только на русском
UFO just landed and posted this here
А мне танцор напомнил Пирамидоголового из Silent Hill
Молодцы.
Жирный плюс в карму @mail.ru
UFO just landed and posted this here
Зачем делать зарядку, ведь в реальной жизни мы не поднимаем гантели по 20 раз?
А по сути — это тренировка для мозгов. Да, мозг тоже надо тренировать :)
Видать вы ни разу не участвовали! Как минимум — это весело. Да и кто знает что может встретиться?
Даже в качестве наблюдателя очень весело было! Сам был, все видел и очень понравилось! Даже появилось желание в topcoder-e зарегестрироваться и заняться тренировкой мозгов!
Зачем нужны олимпиадные игры? Как минимум чтобы выявить сильнейших. Не думаю, что алгоритмы типа «Hello, World!» выявят лидеров. Поэтому заведомо «сложные» задачи, помогут выявить результат.
Организуйте конкурс на самого быстрого настройщика сайта на Joomla :)
и конкурс на самого быстрого верстальщика под IE6
Зачем делать зарядку, ведь в реальной жизни мы не поднимаем гантели по 20 раз?
А по сути — это тренировка для мозгов. Да, мозг тоже надо тренировать :)
Петр, конечно, молодец. Поздравляю! Но какие девочки красивые на регистрации!!!
Ради этого «не жалко» потратить все свободное время на учебу, чтоб победить и получить приз от таких красоток))
А можно выйти на улицу и познакомиться с такими красотками
А ещё финалистам вручили по ipad 2 :) После финала всех повезли кататься по Москве реке на яхте, где мы пытались призвать президента, громко крича слово «Инновации», и горланя «Дима, подойди к окошку» когда проплывали мимо кремля. Но, к сожалению, концентрация айпадов была недостаточной, видимо не все взяли их с собой на прогулку.
Вчера я был на мероприятии, одно только посещение которого эквивалентно получению двух высших образований

Т.е. 10 лет знаний за пару дней получили, крутое мероприятие:)))
Это я шучу, конечно ) но было приятно побывать. Хотя совсем недавно в офисе «Яндекса» был на аналогичной по длительности встрече с министром образования — после встречи было ощущение, что знаний наоборот поубавилось ) Вот она, разница между равнодушным государством и заинтересованным бизнесом.
Тут были и заинтересованный бизнес и заинтересованное сообщество, которое создавалось более 15 лет. Почти все друг друга знали, может быть большинство знакомств было заочным. Хочется подчеркнуть что началось всё не с бизнеса а с энтузиастов из среды образования.
Ну к отношению государтства (имеется в виду СНГ) к образованию пора бы и привыкнуть:) Вроде как не очень то и неожиданно, все стабильно и постоянно:)
Вот всех бы этих умных людей посадить и дать решать реальные задачки… Не люблю уж я абстрактные задачки, извините.
Кхм, а вы думаете эти 50 человек не работают что ли? Ну некоторые ещё студенты, но остальные — ещё как трудоустроены в реальном мире! :-)

Я вот работаю здесь, попробуйте упрекнуть меня в том, что я занимаюсь ненужной миру абстракцией :-)
Посмотрел сайт. И какой реальный продукт вы сделали? :)
Вам быстро или качественно? :)
Лаборатория создана в январе, оборудование с нашими <цензура> тендерами до сих пор не пришло (вот как раз сегодня доставили серверный шкаф). Могу ещё долго рассказывать про проблемы и препятствия. Делаем. В процессе.

Когда выпустим продукт, обязательно напишем на хабре!
Мне — и быстро и качественно :) Утрированно: если сейчас кто-то выпустит очень качественный клон MS-DOS, навряд ли он сможет на этом много заработать.
Про тендеры и в целом нашу науку знаю не по наслышке, поэтому отношусь к ней негативно. Понимаю, у всех есть проблемы и препятствия, но пока нет конечного продукта, вы занимаетесь «ненужной миру абстракцией» :)
PS. Ничего личного, просто мое мнение. Надеюсь у вас все получится и сделаете что-то действительно стоящее :)
Чесслово, команда хорошая, и собрались мы не пилить грант, а погружаться в интересную и перспективную науку.

Наш руководитель Павел Певзнер более чем адекватно ориентируется в текущем state of the art в биоинформатике, поэтому ни о каком MS-DOS под его руководством не может быть и речи!
Я не про то, что люди эти не работают. Я про то, что вместо задачек абстрактных можно было бы дать вполне реальные задачки на соревновании. Хотя кто знает, может они так и делали… Просто есть куча реальных задач, которые можно попытаться так решить и польза была бы вполне реальная.
Например первое, что пришло в голову из текущих исследований: есть какой-то объем, есть набор пересекающихся примитивов в этом объеме, всякие цилиндры, сферы, призмы, итд итп некоторые примитивы довольно сложные и представляю собой пространство окруженное поверхностями 4 порядка. Надо найти минимальное множество примитивов, которые полностью описывают объем, полученный в результате булевого ИЛИ всех примитивов. Т.е. некоторые примитивы содержат в себе куски других примитивов и таким образом какая-то часть может полностью содержаться внутри финального объема.

Задачка абстрактная с одной стороны, а с другой чисто практическая:)
а теперь посмотрите на профили финалистов, а также узнайте где они работают(не считая студентов). Я не думаю, что такие компании их держат только за умение решать «абстрактные» задачи.
Я же вроде написал, что я имею в виду не их работу, а само соревнование.
Несмотря на добрые приколы про Petra, за пять часов невозможно написать большой и стоящий конечный продукт. Но алгоритмы, методики решения подобных задач(не с притянутыми за уши легендами в условиях аля «В стране Флатландии… тра-ля-ля») вполне реальны. Чем сложнее проект, тем чаще они используются.
Я не говорю что они должны писать комерческие проекты. Я говорю что они могли бы попробовать решить чтото действительно сложное и реальное. Есть много задач которые просто описать но сложно решить. Не люблю я когда тратят время умных людей на заведомо бесполезные задачи если можно тратить на полезные. Хотя может они так и делают, я не знаю. Но на всяких топкодерсах народ явно сотый и тысячный раз решает известные задачи. Толку то? Точне толк есть в плане развития но почему бы не делать чтоит полезное при этом
«Я уверен, что каждый олимпиадник для себя точно решил: «я обязательно приму участие в этом турнире». Однако не могу не выразить обеспокоенность относительно следующих соревнований RCC: увидим ли мы столь качественную организацию и классные подарки в следующем году? Не уменьшится ли количество онсайт-финалистов кубка? На фоне неприятных тенденций международных соревнований TopCoder Open и Google Code Jam хочется надеяться, что такой праздник от Mail.ru Group состоится, и, конечно, не один раз!» — Гришин сказал, что это первая попытка выпечь блин, но они постараются сделать его ежегодным и вроде как бюджеты для следующих мероприятий (и для поодержки некоторых отдельно взятых вузов/кафедр) будут увеличены.
Sign up to leave a comment.

Articles