Анонс: 24.05.2010 (пн), 20:00 на сервере личных соревнований SnarkNews пройдёт экспериментальный индивидуальный турнир. Турнир будет проведён по системе TCM, которая будет использоваться на "Яндекс Open 2010". Продолжительность турнира - 1 час 20 минут.
(с) SnarkNews
В кратце описание системы - когда вы посылаете задачу, вы можете ее послать по нормальному, по ACM-овски, либо вы можете послать ее в темную. Во втором случае она останется в монике до конца как знак вопроса, и перепослать или что-то еще сделать по ней нельзя.
В конце соревнования все темные проверяются, и за успешные дают 1.5 балла.
Мне одному кажется, что в этом соревновании будет просто невероятно заруливать удача? По-моему совершенно любой человек может накосячить на любой задаче с каким-то шансом. Очевидно, что по простой задаче никто никогда в такой системе не отправит в светлую - это тупо. Значит все почти участники поощрительные задачи будут сабмитить в темную.
У трети из них она не пройдет, и это сразу совершенно случайным образом даст кому-то фору в 1.5 поинта :о Если простых задач парочка, то это еще круче раскидает людей.
Было бы еще разумно, если бы у задач были какие-то назначенные им поинты, и падение простой задачи не равнялось бы по поинтам падению гроба, а в таком виде это будет полюбому лотерея.
Вообще возникает устойчивое ощущение, что снарк не любит штрафы. Те, кто писал в его системе АСМ+ думаю помнят, что там штраф полностью лишает вас возможности бороться за призовые места с теми, кто штраф не сделал :о
А еще интересно, что же вообще значит TCM. Это типа TC и ACM вместе? От TC получается взяли только проверку в конце? Или это как-то по умному еще расшифровывается?
(с) SnarkNews
В кратце описание системы - когда вы посылаете задачу, вы можете ее послать по нормальному, по ACM-овски, либо вы можете послать ее в темную. Во втором случае она останется в монике до конца как знак вопроса, и перепослать или что-то еще сделать по ней нельзя.
В конце соревнования все темные проверяются, и за успешные дают 1.5 балла.
Мне одному кажется, что в этом соревновании будет просто невероятно заруливать удача? По-моему совершенно любой человек может накосячить на любой задаче с каким-то шансом. Очевидно, что по простой задаче никто никогда в такой системе не отправит в светлую - это тупо. Значит все почти участники поощрительные задачи будут сабмитить в темную.
У трети из них она не пройдет, и это сразу совершенно случайным образом даст кому-то фору в 1.5 поинта :о Если простых задач парочка, то это еще круче раскидает людей.
Было бы еще разумно, если бы у задач были какие-то назначенные им поинты, и падение простой задачи не равнялось бы по поинтам падению гроба, а в таком виде это будет полюбому лотерея.
Вообще возникает устойчивое ощущение, что снарк не любит штрафы. Те, кто писал в его системе АСМ+ думаю помнят, что там штраф полностью лишает вас возможности бороться за призовые места с теми, кто штраф не сделал :о
А еще интересно, что же вообще значит TCM. Это типа TC и ACM вместе? От TC получается взяли только проверку в конце? Или это как-то по умному еще расшифровывается?
TCM - наверн Top Coder Machinery :)
Но это все же лучше чем отнимать по 0.2 балла за неверную попытку по сравнению с ACM+. Просто решили добавить еще больше азарта. Тем более турнир экспериментальный.
регламент турнира
По расписанию видно, что время туров следующее:
28.05.2010 (пт), 20:00
30.05.2010 (вс), 15:00
01.06.2010 (вт), 19:00
А на CodeForces 29.05.2010 (сб), 19:00 (там этого пока нет).
Еще конечно многое от задач зависеть будет. Если как в SNSS по 6 несложных (да еще и свеченых), то вообще жесть, надо и шлепать как угорелый и еще желательно без ошибок да в темную.
Еще вопрос, что это за Яндекс Open? Судя по тому что сам яндекс ничего по нему не находит, я делаю вывод, что Яндекс просто проспонсировал очередной SNSN. В любом случае, чем больше контестов, тем не хуже :)
Когда мы пользуемся программой, которая работает неправильно, нам же не приходит в голову сказать “ой как не повезло разработчику”. Обычно выражения совсем другие. И мы понимаем, что именно разработчик отвечает за появление бага.
Ещё он сказал, что сайт соревнования скоро будет.
Мне интересны два момента:
1) До первого отборочного раунда "Яндекс Open 2010" осталось 3 дня. А каковы, собственно говоря, правила турнира? Сколько людей проходят в следующий раунд?
2) Почему решения, отправленные в темную, нельзя проверять сразу после сабмита, а результаты вывешивать сразу после контеста(как, судя по всему, делают на Google Code Jam)? И интрига сохраняется, и ждать лишние 15 минут не надо. Я понимаю, почему такая вещь не происходит на TopCoder - там разрешены ресабмиты. Тут же, как я понимаю, попытка сдавать втемную всего одна.
2) На TopCoder именно такая вещь и проходит.
Просто после контеста добавляются тесты из Challenge phase.
Из него следует, что как только ты сабмитишь решение, оно сразу проверяется на всех системниках. Если не ошибаюсь, после каждого успешного челенжа начинается проверка всех решений на этом тесте. Так как успешных челенжей обычно много, проверка заметно вылазит за границы самой челенж фазы.
Не проверка решения сразу - это не худшее, что не происходит у Снарка :о) Есть еще такие вещи, как почему у Снарка не происходит автопросыпание, если поставленный им контест на сборах упал/не запустился, а Снарк спит?
Можно сделать изящнее: интуитивно понятно, что таких чисел немного, а потому случайная перестановка цифр с большой вероятностью не даст простого числа.
Код получается примерно такой:
http://pastie.org/977838
1) если число <10, то все очевидно.
Пусть оно больше (либо равно :))
2) если в числе все цифры одинаковые, то это только 11 и 1111111111111111111 (19 раз)
(видимо из-за второго числа и стоят такие ограничения до 2*10^18, а не как обычно до 10^18)
3) если есть хотя бы две разные цифры, то если всего цифр >6, то оно не подходит (строго не доказал, но должно как-то делаться по делимости на 7, так как на контесте прошло, то видимо это даже правда :) ).
4) Остается случай когда число <1000000. Здесь уже все просто. Решетом создаем булевский массив простоты и while_nextpermutation-ом пробегаем по всем перестановкам и проверяем на простоту.
Там же — в Википедии — написано, как её решать: построить эйлеров цикл. Поскольку граф специальный, он задан неявно.
Имевшийся в виду баг — вполне реальный, произошедший при подготовке задачи: в силу своей природы функция pow для целых чисел не обязательно возвращает корректные целые значения. Поэтому происходило что-то типа 52=24.999999..., и приведение к типу округляло это до 24.
Как выяснилось слишком поздно (~сейчас), на этих компах и с этим компилятором g++ программа таки правильно округляет все pow до целых. До этого задача гонялась только на виндовых компах, там mingw gcc 3/4 естественно вёл себя по-другому. В каком-то другом месте привёл или не привёл long double к double. Блин.
Конечно, планировалось это проверить, но из-за общей запарки, вызванной, в частности, обилием писем о регистрации/перерегистрации, мы не успели
этого сделать (и не только этого — части условий фиксились уже по ходу). Приношу свои извинения. Надеюсь, соответствующий пункт правил позволит в дальнейшем этого избежать: Внимание: за 4 часа до начала каждого отборочного раунда обработка заявок на регистрацию нового пользователя, изменение регистрационных данных и восстановление пароля приостанавливается до момента завершения соответствующего раунда!
С другой стороны, поскольку контест имел статус warmup-а, задачи были свеченные из разных мест (ABCE с Armenian Open, DF с тренировок СПбГУ), а целью его было проверить работоспособность системы и познакомить участников с правилами — хорошо, что этот баг случился сейчас, а не на одном из отборочных раундов.
Хм, этот баг я нашел, но на инпуте
10 5
прога вылетала с RE(у меня на компе по крайней мере), и я решил не рисковать =(
Такое ощущение, что новый формат априори не нравится тем, что слишком натаскался на стандартный ACM.
А почему нужно любить штрафы? Вон, в IOI их совсем не любят.
Это если пытаться что-то оценивать. Участники среднего и ниже уровня вообще не будут ничего оценивать, а просто посылать все в темную, на удачу. Иначе у них просто нет шансов, поэтому они ничего не теряют. Топовые участники видимо будут осторожничать, потому что им есть что терять. Вот и может получиться что средний обойдет топа, несмотря на то что решил меньше задач.
> Довольно полезный скилл, кстати.
В чем польза? Помоему это абсолютно бесполезный скилл. В реальной жизни никто не будет говорить - я уверен в своем коде, смело выкладывайте его в продакшен. Все все-равно будут тестировать.
Если предположить, что задач будет 6, как на SN*S, то чтобы обойти "топового" участника, который сдал 6 задач в открытую на 6 баллов, нужно сдать 4 задачи вслепую. А тот, кто сдает успешно 4 задачи вслепую -- это уже далеко ненулевой уровень. Так что, имхо, все не так плохо сбалансировано.
Ну-ну. Вы выкладываете в продакшен только что скомпилированную версию вашего кода? Сами не тестируете, чтобы быть более-менее уверенными?
Не важно что неосмысленно, это их единственный шанс. Будут что-то посылать в открытую - точно не пройдут в онсайт. А онсайт это и есть единственная цель Яндекс опен, тут же не дают футболок за топ 100 например.
>Ну-ну. Вы выкладываете в продакшен только что скомпилированную версию вашего кода? Сами не тестируете, чтобы быть более-менее уверенными?
Так я как раз и говорю про это. Умение заранее оценивать свой код на правильность не имеет ценности. Все равно надо писать тесты, причем в реальной жизни тот кто пишет код и тот кто пишет тесты это вообще разные люди могут быть. На контесте важно решить задачу, и гораздо менее важно сразу правильно или с несколькими багами.
А я-то думал, что главная цель таких контестов - получать фан :) Новая система с этой точки зрения особенно хороша, теперь важны не только скиллы решения задач, но и правильный выбор стратегии. Всё более динамично, менее однообразно => больше фана.
Что касается тестов - вам никто не мешает перед сабмитом тестировать своё решение (или даже писать тесты до решения :)). Всё упирается в то, что на увеличение вероятности правильности решения приходится так или иначе тратить время (или на аккуратное кодирование, или на тесты).
1. Задали вопрос, неужели я выкладываю свои программы не тестируя.
2. Рассказали что оказывается мне никто не мешает тестировать задачи самому.
3. Задали странный вопрос про тестирование непредусмотренных в коде ситуаций
4. Вменили в вину преподношение TDD как чего-то нового и лучшего.
Что-то странное творится... Чем я спровоцировал такую бурю тотального непонимания? :)
Про "ценность скилла заранее сказать что программа правильная" никто никогда не говорил, в начале ветки говорится об "умении оценивать свои шансы на "accepted"". Вы возражаете, что это ненужный скилл, т.к. код всё равно будет тестироваться, вам отвечают, что тестирование - это один из способов оценки и повышения своих шансов на AC, при этом как правило основной способ. Вы же согласитесь, что умение грамотно тестировать программу полезно?
P.S. Ни разу не слышал о применении TDD в спортивном программировании. Кто-нибудь пробовал его использовать на контестах? :)
Про ТДД я говорил исключитьльно в смысле бесполезности в реальной жизни способности человека говорить не тестируя что программа правильная, но в некотором смысле все решения в спортивном программировании пишутся в стиле ТДД, ведь всегда есть сэмплы и по ним все ровняется.
Тока я не понял, а что за свиновод в первой задаче? :о
Упало-то за две минуты до конца.
Хотел успокоиться... может быть не прошло решение...)
А то теперь покоя нет, что доделал... а все повисло))
Почему первый тест не является перестановкой первых 3х латинских букв и длин тоже 3 (т.е. не соответствует южанам), и вообще каким образом может не соответствовать северному континенту, если там произвольный набор?
И почему в 3м сэмпле нет однозначного севера? Каким образом там может быть юг??
В 3 тесте может быть K = 26, L = 6.
Ответа "South", конечно же, не бывает.
У меня вопрос по задаче Б. Во-первых, по условию(во время контеста админы посоветовали читать условие; я там нужной инфы не нашел):где находится вход в лабиринт? Мое решение считало, что в качетсве входа можна выбрать любую вершину графа.
И второй вопрос: простой дфс на этой задаче не работает?
Находил расстояния до всех вершин от N-й.
Потом сортил по невозрастанию..
И проходя по отсортированному списку брал очередную вершину, считая расстояние и перебирая все вершины в пути до нее... соответственно, отмечая наиболее удаленные (не более 3-х), как пройденные.
Но wa№8 :(
Например, есть задачи, в которых приходится разобрать много случаев. Их, возможно, эффективнее сдавать в открытую.
Ещё бывает, что очередная задача написана, но времени на следующую не осталось, даже времени как следует протестировать не осталось. Если уверен в решении, можно её послать втёмную. Если нет — логично послать в открытую, чтобы иметь возможность получить хотя бы 1 призовой балл.
Кто-нибудь смог сдать что-нибудь на дорешивании?
Мое решение находится в состоянии Running уже ~3 часа, при этом клар послать нельзя, потому что если у тебя есть непроверенные сабмиты, то страничка обновляется каждые 5-7 секунд и весь написанный текст стирается...
хотя если там никого нет то и клар не поможет, лучше снарку на почту
Вопрос по задаче Д второго раунда. Почему не проходит следующее решение:
1) Посчитать h=v*v/(2*g);
2)Рассмотерть числа (int)(h+1),(int)(h-1),(int)(h). Из них выбрать максимальное такое, что 2*g*h<=v*v. Это число и есть ответ.
Сдавал в темную - ронг на первом тесте. Странно. В правилах читал, что первые тесты - тесты из условия. На них у меня на компе все прекрасно работало.
У меня тоже не проходило такое решение.
Потом переписал так:
cin >> v;
v*=10*v;
cout << v/32 << '\n';
Во время контеста дописать не успел, к сожалению (или к счастью:) )
cout.precision(9);
cout.setf(ios::fixed);
long double q = 1e-9;
cout << q << endl;
P.S.: Я правильно понимаю, что по-хорошему надо считать числа с помощью возведения матрицы в степень (допустим первые 300 знаков)?
Обновите http://contests.snarknews.info, там изменена ссылка "войти в систему".
4 1
1 2 1000
2 3 1
2 4 1
Столица должна быть недостижима из листьев, про остальные города ничего не сказано.
Прикалывались-прикалывались над Воронежем, и вот сделали серьёзную заявку на "Худший контест 2010".
Вот оповестить участников так, чтобы все гарантированно прочитали — действительно, непонятно как. Главную страницу соревнования можно всё-таки не догадаться обновлять раз в пару минут. Разве что почту всем вошедшим в контест рассылать?..
В 3 раунде среди тех, кто решил все задачи, победил, получается, тот, кто раньше всех нашёл ссылку на резервный сервер. Это тоже некруто.
Оповестить можно и заранее.
Значит, failures в принципе ожидались (особенно после опыта прошлого контеста), и сервер держался на этот случай.
Вот в данном случае я бы счел резонным до тура указать, что в случае падения будет активирован резервный сервер, добавьте ссылку на него в закладки. Ну или хотя бы знайте, что такой сервер будет :о) Если бы я не зашел сюда, я бы и не знал, что такой сервер есть, и ждал бы пока встанет тот :о(
Таким образом, по совокупности обстоятельств прошедший турнир объявляется внезачётным, третий раунд "Яндекс Open 2010" переносится на резервную дату - 20:00 02.06.2010.
Ну че, отдельные участники, признавайтесь, кого бес попутал?
Удобно, черт возьми, и не надо никакой возни со вторым аккаунтом :)
Плюс это неплохая подготовка к отборочным TCO - надрючиться не косячить в 250 :о)
На данный момент меня лично очень интересует кто является автором задач? Кто этот герой, которому завтра в рабочее время придется придумать 6 новых задач и составить комплекты тестов для них? Или жюри предусмотрительно заранее подготовило не только резервный сервер, но и резервный проблемсет?
На любых отборочных, включая TCO, GCJ, всегда есть резервный комплект. И я уверен, что не один.
Так что в данном случае даже если бы не было прецедента со вторым туром, я уверен, что у Олега был бы резервный комплект.
На онсайтах тоже всегда есть резервный комплект я думаю, потому что всегда есть шанс срыва соревнования.
Это мало о чем говорит :о) График-то у меня стабильно убывает - мой рейтинг не более чем наследие пористости двухгодичной давности, которая давно куда-то улетучилась с прекращением тренировок :о)
Вот помню я крутое время, когда во всей России выше меня были только Петя, Станкевич и ты :о)
Раз на входе сначала идет количество красных, а потом синих,
значит и выводить надо сначала вероятность победы красных, потом синих :) С сэмплами все сходится
И по задачам, и по проведению.
По задачам:
B, D -- Страшно посылать "вслепую" задачи, которые могут упасть по точности. На SN*S хотя бы ресабмитнуть можно :)
C -- TeX такой TeX. Похоже, авторы подразумевали "letter=i", в то время как в условии "letter = i". Заакцептившие, проверьте, проходит ли ваше решение тест
A = 2
B = 1
AB-
E -- где там все попадали?!
Если тогда понятно где я ошибся=)
Мне кажется, что не могли, но в условии это было отражено недостаточно ясно.
Тут лучше перестраховаться, конечно, особенно пишущим на яве.
Официальными языками программирования турнира "Яндекс Open 2010" являются C, C++, Java, Pascal/Delphi.
К тому же, в шарпах есть кавайный StringSplitOptions.RemoveEmptyEntries.
Просто почти всегда не пишу. И часто жалею потом из-за этого
Тем более я разбивал только на "="
И шарп же был. Или что значит официальный? На онсайт контесте? Ну мне не светит все равно.
Просто я не заметил, что могут быть не инициализированы
И у меня было обращение к несуществующему элементу словаря
То есть вся крутая система снарка по прохождению почти совпала с топ15 по итогом трех раундов :о)