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

Автор AlexSkidanov, 15 лет назад, По-русски
Анонс: 24.05.2010 (пн), 20:00 на сервере личных соревнований SnarkNews пройдёт экспериментальный индивидуальный турнир. Турнир будет проведён по системе TCM, которая будет использоваться на "Яндекс Open 2010". Продолжительность турнира - 1 час 20 минут.

(с) SnarkNews

В кратце описание системы - когда вы посылаете задачу, вы можете ее послать по нормальному, по ACM-овски, либо вы можете послать ее в темную. Во втором случае она останется в монике до конца как знак вопроса, и перепослать или что-то еще сделать по ней нельзя.
В конце соревнования все темные проверяются, и за успешные дают 1.5 балла.

Мне одному кажется, что в этом соревновании будет просто невероятно заруливать удача? По-моему совершенно любой человек может накосячить на любой задаче с каким-то шансом. Очевидно, что по простой задаче никто никогда в такой системе не отправит в светлую - это тупо. Значит все почти участники поощрительные задачи будут сабмитить в темную.
У трети из них она не пройдет, и это сразу совершенно случайным образом даст кому-то фору в 1.5 поинта :о Если простых задач парочка, то это еще круче раскидает людей.
Было бы еще разумно, если бы у задач были какие-то назначенные им поинты, и падение простой задачи не равнялось бы по поинтам падению гроба, а в таком виде это будет полюбому лотерея.

Вообще возникает устойчивое ощущение, что снарк не любит штрафы. Те, кто писал в его системе АСМ+ думаю помнят, что там штраф полностью лишает вас возможности бороться за призовые места с теми, кто штраф не сделал :о

А еще интересно, что же вообще значит TCM. Это типа TC и ACM вместе? От TC получается взяли только проверку в конце? Или это как-то по умному еще расшифровывается?
  • Проголосовать: нравится
  • +14
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

TCM - наверн Top Coder Machinery :)

Но это все же лучше чем отнимать по 0.2 балла за неверную попытку по сравнению с ACM+. Просто решили добавить еще больше азарта. Тем более турнир экспериментальный. 

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да вот мне что то кажется, что это примерно одно и тоже по случайности :)
15 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится
А где этот сервер личных соревнований SnarkNews? snarknews.info?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А при равенстве баллов сортировка по icpc-шному penalty?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    Да. +20 мин за каждую неудачную попытку по пробитой задаче (если она сдавалась в светлую) + время сдачи.
15 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
А вот меня больше интересует что это будет уже сегодня, а как туда зарегаться не понятно.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Судя по всему, специально регаться не надо, нужно просто иметь логин/пароль на сервере личных соревнований у Снарка.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Хм... а восстановить его можно?
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Нужно написать Снарку.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Как интересно... на открытый турнир нельзя зарегаться нормально.
          • 15 лет назад, # ^ |
              Проголосовать: нравится +26 Проголосовать: не нравится
            Это новая система, регаться надо "в темную" :)
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Это сделано из соображений чтобы отсечь читеров. (В оригинале от Снарка там еще что-то про китайцев говорилось :))
            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              А как там читерить??? Я что, не смогу зарегать совершенно левого человека, если отправлю левые данные? Он в вузы звонит чтоль?
              • 15 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Например, зарегать два акка - на одном сдавать в светлую, потом на втором - в темную.

                Конечно, отсутствие открытой регистрации всех таких проблем не решает. Но, например, это гарантирует что пре регистрации будет сообщено имя. Если имя будет фейковым, то рано или поздно это скорее всего заметят - например, представители того же ВУЗа.
                • 15 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Я понимаю, как можно читерить, это был лол.

                  Ну... я не думаю, что допустим в майкопском филиале ргсу много человек учавствует в первом яндекс опен контесте. (опять же намёк на лол, ибо там врядли вообще кто то слышал об олимпиадном программировании.. если, конечно, предположить что там кто-то вообще знает что такое программирование).
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          А куда писать, чтобы зарегать мне логин, объясните для непосвященных :) Или это только для избранных и меня туда не возьмут?
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Кажись там те, кто регался на зимний снарковский чамп
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Subject: Contest will start at 20:10
            По причине большого количества заявок на обновление/создание логина, поступивших в последний час, турнир начнётся в 20:10 вместо объявленных 20:00.

            Предупреждение: во время Yandex Open 2010 регистрация на раунд "в последний момент" будет невозможна.

            ------------------------
            видимо както можно зарегаться
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кстати... время начала первого тура 28-го в 20. Час после начала cfbr15
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Нет, на самом деле они не пересекаются.

    По расписанию видно, что время туров следующее:

    28.05.2010 (пт), 20:00
    30.05.2010 (вс), 15:00
    01.06.2010 (вт), 19:00

    А на CodeForces 29.05.2010 (сб), 19:00 (там этого пока нет).
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Еще одна система... Я не совсем понимаю зачем вообще приумавать их? В старых что-то неустраивает, или надоел уже всем привычный ACM? Так вроде ни то ни другое...

Еще конечно многое от задач зависеть будет. Если как в SNSS по 6 несложных (да еще и свеченых), то вообще жесть, надо и шлепать как угорелый и еще желательно без ошибок да в темную.

Еще вопрос, что это за Яндекс Open? Судя по тому что сам яндекс ничего по нему не находит, я делаю вывод, что Яндекс просто проспонсировал очередной SNSN. В любом случае, чем больше контестов, тем не хуже :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится
    Да, кстати, вот это интересный момент :) Сайта насколько я понял нет, да и никакой информации кроме правил и то что это на снарксайте нету. А где регаться, учасвтвовать и что это вообще и с чем есть не понятно.
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
обычно когда задача заходит с первой попытки ты рад, а тут при посылке в светлую будет обидно))
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ага. Д-шку не риснул сдавать втемную, в результате потерял 0.5 балла.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Есть еще такой момент: те кто сдают в откытую помогают своим соперникам, которые собираются сдавать в темную. Потому что результаты открытых сабмитов, известны всем, и все могут делать выводы относительно того насколько много в задаче подводных камней и прочего. Правда от этого эффекта можно избавиться, если в таблице показывать только суммарное кол-во сданных задач (отдельно открытых и закрытых) и штрафное время, без детализации того, какие именно задачи решены.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как как планирует писать? Всё в открытую сдавать или наоборот всё в закрытую? Может стоит как-то чередовать? У кого-нибудь есть уже мысли на этот счёт? :)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Интересно, а в случае сдачи в темную даже компиляция не будет проверяться? было бы хорошо проверить и сэмплы
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Из правил:

    При отправке решений "втёмную" решение проверяется только на тестах из условия. Если решение не проходит тесты из условия, сообщается тип ошибки и номер теста, на котором произошла ошибка. Если решение проходит тесты из условия, задача условно засчитывается. Повторная отправка решений по этой задаче становится невозможной. При этом итоговый результат проверки задачи становится известен только после окончания соревнований.


    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А вот и неправда. Сдавал А-шку, оставалось 30 секунд до конца. Решил, что если буду сдавать всветлую, при ронге отдебажить не успею - сдавал втемную. При проверке вердикт был ОК, вот только на одном из тестов из условия у меня не канало :-)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Насчёт удачи не соглашусь (конечно, если не вставлять в решение слишком много вызовов функции random). Да, любой человек может допустить баг. Но неверно было бы назвать это "неудачей". Он же сам допустил этот баг, а вместо этого мог бы подстраховаться и больше внимания уделить написанию и тестированию.

Когда мы пользуемся программой, которая работает неправильно, нам же не приходит в голову сказать “ой как не повезло разработчику”. Обычно выражения совсем другие. И мы понимаем, что именно разработчик отвечает за появление бага.
15 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
А как теперь посмотреть результат?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ух ты.. круто... а я только залогинившись увидел результаты.
      Интересно, а как ты дошёл до этой ссылки?
      (кстати, кажись это особенная черта снарка - держать всё в тайне :) )
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Спросил у Снарка :) .

        Ещё он сказал, что сайт соревнования скоро будет.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Блин... как же я не догадался до этого способа :) оригинально :)
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Вообще что то там каряво таблица написана.. посмотреть например на Bondarenko Natal'ya, у неё было 4 вопроса до системтеста, а в итоге всего три зачтено и нет нолика.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Это во время тестирования было, сейчас вроде всё нормально.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Послал три задачи в открытую... и все чисто))

Не знаю, как правильнее действовать)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Темные сабмиты очень мощные. Так что фраза "Don't underestimate the power of the dark side" приобретает еще один смысл :)
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Плюс этого формата в том, что после соревнования куча эмоций у людей "а-а-а, зачем я не послал ее в темную" или "о нет, надо было посылать в светлую" :о)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Мне интересны два момента:

1) До первого отборочного раунда  "Яндекс Open 2010" осталось 3 дня. А каковы, собственно говоря, правила турнира? Сколько людей проходят в следующий раунд?

2) Почему решения, отправленные в темную, нельзя проверять сразу после сабмита, а результаты вывешивать сразу после контеста(как, судя по всему, делают на Google Code Jam)? И интрига сохраняется, и ждать лишние 15 минут не надо. Я понимаю, почему такая вещь не происходит на TopCoder - там разрешены ресабмиты. Тут же, как я понимаю, попытка сдавать втемную всего одна.

  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    1) Да, мне тоже интересно. С учётом крайне неудачного времени для 1 раунда хотелось бы знать хотя бы о том, зависят раунды друг от друга или нет (т.е. это раунды обычные или квалификационные).

    2) На TopCoder именно такая вещь и проходит.
    Просто после контеста добавляются тесты из Challenge phase.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      2) Возможно. Хотя тогда непонятно, почему систест начинается не мгновенно после челленджа, а с паузой в несколько минут, и почему он проходит так долго? Неужели админы ТК просто сидят и смакуют? :-)
      • 15 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Плюс ко всему этому в систест входят тесты, на которых был произведен успешный челлендж.
      • 15 лет назад, # ^ |
          Проголосовать: нравится +4 Проголосовать: не нравится
        После тура любого зайди в свою History - там написано когда твое решение было проверено на каком тесте.
        Из него следует, что как только ты сабмитишь решение, оно сразу проверяется на всех системниках. Если не ошибаюсь, после каждого успешного челенжа начинается проверка всех решений на этом тесте. Так как успешных челенжей обычно много, проверка заметно вылазит за границы самой челенж фазы.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Почему у Снарка что-то не происходит?
    Не проверка решения сразу - это не худшее, что не происходит у Снарка :о) Есть еще такие вещи, как почему у Снарка не происходит автопросыпание, если поставленный им контест на сборах упал/не запустился, а Снарк спит?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Если честно, то судя по уровню организации, это соревнование можно со спокойной душой пропустить.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Судить по пробному туру не стоит. Дальше будет все гораздо лучше.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    1) Теперь есть сайт соревнования (slalex уже запостил ссылку, но в середине ветки её найти не так просто).
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    2. Все дело в том, что это реализовано через костыли к системе ejudge и проверка итоговая является "реджаджем" по этим задачам
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А может кто-нибудь написать краткий разбор первой и последней задач?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Первая --  кто бы мог подумать -- гуглится по запросу "absolute prime".

    Можно сделать изящнее: интуитивно понятно, что таких чисел немного, а потому случайная перестановка цифр с большой вероятностью не даст простого числа.
    Код получается примерно такой:
    http://pastie.org/977838

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Первая задача.
    1) если число <10, то все очевидно.
    Пусть оно больше (либо равно :))
    2) если в числе все цифры одинаковые, то это только 11 и 1111111111111111111 (19 раз)
    (видимо из-за второго числа и стоят такие ограничения до 2*10^18, а не как обычно до 10^18)
    3) если есть хотя бы две разные цифры, то если всего цифр >6, то оно не подходит (строго не доказал, но должно как-то делаться по делимости на 7, так как на контесте прошло, то видимо это даже правда :) ).
    4) Остается случай когда число <1000000. Здесь уже все просто. Решетом создаем булевский массив простоты и while_nextpermutation-ом пробегаем по всем перестановкам и проверяем на простоту.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      3) если >3 цифр. во всяком случае такую информацию можно найти в гугле.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Вот здесь, насчет пункта 3 говорится, что если такие числа есть, то в них не меньше 175 знаков. Как я понял, их существование - открытый вопрос.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Оригинал условия последней задачи можно увидеть тут. Вкратце — нужно построить цикл де Браана (как это часто бывает, английская версия в Википедии более информативна).

    Там же — в Википедии — написано, как её решать: построить эйлеров цикл. Поскольку граф специальный, он задан неявно.

    Имевшийся в виду баг — вполне реальный, произошедший при подготовке задачи: в силу своей природы функция pow для целых чисел не обязательно возвращает корректные целые значения. Поэтому происходило что-то типа 52=24.999999..., и приведение к типу округляло это до 24.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      сданный их код на g++ получил ок.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Да, это не фича, это баг :( .

        Как выяснилось слишком поздно (~сейчас), на этих компах и с этим компилятором g++ программа таки правильно округляет все pow до целых. До этого задача гонялась только на виндовых компах, там mingw gcc 3/4 естественно вёл себя по-другому. В каком-то другом месте привёл или не привёл long double к double. Блин.

        Конечно, планировалось это проверить, но из-за общей запарки, вызванной, в частности, обилием писем о регистрации/перерегистрации, мы не успели
        этого сделать (и не только этого — части условий фиксились уже по ходу). Приношу свои извинения. Надеюсь, соответствующий пункт правил позволит в дальнейшем этого избежать: Внимание: за 4 часа до начала каждого отборочного раунда обработка заявок на регистрацию нового пользователя, изменение регистрационных данных и восстановление пароля приостанавливается до момента завершения соответствующего раунда!

        С другой стороны, поскольку контест имел статус warmup-а, задачи были свеченные из разных мест (ABCE с Armenian Open, DF с тренировок СПбГУ), а целью его было проверить работоспособность системы и познакомить участников с правилами — хорошо, что этот баг случился сейчас, а не на одном из отборочных раундов.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Хм, этот баг я нашел, но на инпуте

      10 5

      прога вылетала с RE(у меня на компе по крайней мере), и я решил не рисковать =(

      • 15 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Там решение сильно юзает стек. Ты увеличил размер стека по умолчанию?
15 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Гм, тут заруливает не удача, а умение оценивать свои шансы на "accepted". Довольно полезный скилл, кстати.

Такое ощущение, что новый формат априори не нравится тем, что слишком натаскался на стандартный ACM.

А почему нужно любить штрафы? Вон, в IOI их совсем не любят.
  • 15 лет назад, # ^ |
      Проголосовать: нравится -6 Проголосовать: не нравится
    > Гм, тут заруливает не удача, а умение оценивать свои шансы на "accepted".

    Это если пытаться что-то оценивать. Участники среднего и ниже уровня вообще не будут ничего оценивать, а просто посылать все в темную, на удачу. Иначе у них просто нет шансов, поэтому они ничего не теряют. Топовые участники видимо будут осторожничать, потому что им есть что терять. Вот и может получиться что средний обойдет топа, несмотря на то что решил меньше задач.

    > Довольно полезный скилл, кстати.
    В чем польза? Помоему это абсолютно бесполезный скилл. В реальной жизни никто не будет говорить - я уверен в своем коде, смело выкладывайте его в продакшен. Все все-равно будут тестировать.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Ясно, что для слабых участников посылать вслепую -- это вообще неосмысленно, так как оно скорее всего упадет.

      Если предположить, что задач будет 6, как на SN*S, то чтобы обойти "топового" участника, который сдал 6 задач в открытую на 6 баллов, нужно сдать 4 задачи вслепую. А тот, кто сдает успешно 4 задачи вслепую -- это уже далеко ненулевой уровень. Так что, имхо, все  не так плохо сбалансировано.

      Ну-ну. Вы выкладываете в продакшен только что скомпилированную версию вашего кода? Сами не тестируете, чтобы быть более-менее уверенными?
      • 15 лет назад, # ^ |
          Проголосовать: нравится -10 Проголосовать: не нравится
        > Ясно, что для слабых участников посылать вслепую -- это вообще неосмысленно

        Не важно что неосмысленно, это их единственный шанс. Будут что-то посылать в открытую - точно не пройдут в онсайт. А онсайт это и есть единственная цель Яндекс опен, тут же не дают футболок за топ 100 например.

        >Ну-ну. Вы выкладываете в продакшен только что скомпилированную версию вашего кода? Сами не тестируете, чтобы быть более-менее уверенными?

        Так я как раз и говорю про это. Умение заранее оценивать свой код на правильность не имеет ценности. Все равно надо писать тесты, причем в реальной жизни тот кто пишет код и тот кто пишет тесты это вообще разные люди могут быть. На контесте важно решить задачу, и гораздо менее важно сразу правильно или с несколькими багами.
        • 15 лет назад, # ^ |
            Проголосовать: нравится +9 Проголосовать: не нравится
          > А онсайт это и есть единственная цель Яндекс опен, тут же не дают футболок за топ 100 например.

          А я-то думал, что главная цель таких контестов - получать фан :) Новая система с этой точки зрения особенно хороша, теперь важны не только скиллы решения задач, но и правильный выбор стратегии. Всё более динамично, менее однообразно => больше фана.

          Что касается тестов - вам никто не мешает перед сабмитом тестировать своё решение (или даже писать тесты до решения :)). Всё упирается в то, что на увеличение вероятности правильности решения приходится так или иначе тратить время (или на аккуратное кодирование, или на тесты).
      • 15 лет назад, # ^ |
          Проголосовать: нравится -6 Проголосовать: не нравится
        К тому же, все большую популярность приобретает TDD подход, когда сначала пишут тесты, а уж потом код. Т.е. программист может совершить сколь угодно много багов - он их все равно поправит, чтобы все тесты проходили.
        • 15 лет назад, # ^ |
            Проголосовать: нравится +6 Проголосовать: не нравится
          А как он сможет написать тесты для ситуаций, которые не может предусмотреть в коде?
          P.S. И не надо вот только преподносить TDD, как нечто новое и лучшее :)
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            К сожалению, нить дискуссии про "заруливание удачи и ценность скилла заранее сказать что программа правильная" полностью утеряна... Вместо того, что бы возразить что-то по существу, мне:

            1. Задали вопрос, неужели я выкладываю свои программы не тестируя.
            2. Рассказали что оказывается мне никто не мешает тестировать задачи самому.
            3. Задали странный вопрос про тестирование непредусмотренных в коде ситуаций
            4. Вменили в вину преподношение TDD как чего-то нового и лучшего.

            Что-то странное творится... Чем я спровоцировал такую бурю тотального непонимания? :)
            • 15 лет назад, # ^ |
                Проголосовать: нравится +3 Проголосовать: не нравится
              Про заруливание удачи - время покажет. Пока по результатам первого тура ничего особенно непредсказуемого и рандомного не произошло.

              Про "ценность скилла заранее сказать что программа правильная" никто никогда не говорил, в начале ветки говорится об "умении оценивать свои шансы на "accepted"". Вы возражаете, что это ненужный скилл, т.к. код всё равно будет тестироваться, вам отвечают, что тестирование - это один из способов оценки и повышения своих шансов на AC, при этом как правило основной способ. Вы же согласитесь, что умение грамотно тестировать программу полезно?

              P.S. Ни разу не слышал о применении TDD в спортивном программировании. Кто-нибудь пробовал его использовать на контестах? :)
              • 15 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Уметь тестировать важно, но тут ведь не за тестирование премируют, а за АЦ, полученный втемную. Я, например, ничего не тестировал, просто посылал да и все. Вот если бы оценивался процент покрытия тестами или что-то подобное - тогда да, есть смысл, тут же просто удача. Естественно не у всех, топовые участники все-же будут тестировать хоть немного, но я об этом уже говорил.

                Про ТДД я говорил исключитьльно в смысле бесполезности в реальной жизни способности человека говорить не тестируя что программа правильная, но в некотором смысле все решения в спортивном программировании пишутся в стиле ТДД, ведь всегда есть сэмплы и по ним все ровняется.
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
С точки зрения участника прикольная система :о)
Тока я не понял, а что за свиновод в первой задаче? :о
15 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Похоже упала система....
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Ну как всегда))
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А дорешать почему-то нельзя... нет в списке этих задач(((
Хотел успокоиться... может быть не прошло решение...)
А то теперь покоя нет, что доделал... а все повисло))
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Странно. У меня фэйл по задаче Б, а в посылках написано что асепт. И кому верить?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кто-нибудь объясните в задаче Д
Почему первый тест не является перестановкой первых 3х латинских букв и длин тоже 3 (т.е. не соответствует южанам), и вообще каким образом может не соответствовать северному континенту, если там произвольный набор?
И почему в 3м сэмпле нет однозначного севера? Каким образом там может быть юг??
  • 15 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится
    Север может быть всегда. Ответа Юг не бывает.

    В третьем семпле какая-то престановка первых 26 латинских букв.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Является. Поэтому соответствует. Поэтому континент не может быть определён.
    В 3 тесте может быть K = 26, L = 6.
    Ответа "South", конечно же, не бывает.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

У меня вопрос по задаче Б. Во-первых, по условию(во время контеста админы посоветовали читать условие; я там нужной инфы не нашел):где находится вход в лабиринт? Мое решение  считало, что в качетсве входа можна выбрать любую вершину графа. 

И второй вопрос: простой дфс на этой задаче не работает?

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Вход находится в 1. Это сказано в условии. Простой дфс не знаю, но дфс запоминающий сколько путей из вершины и не считающий это заново работает.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Еще работает топологическая сортировка)
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Расскажите пожалуйста как решать E.

Динамика за 220203 получила ТЛ7. Что тут можно придумать еще я не знаю.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    так как порядок не важен, можно за 2^20 * 20^2, считать, что минимальный элемент в маске всегда в последней группе битов был принесен
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Пробовал решить Дейкстрой...
    Находил расстояния до всех вершин от N-й.
    Потом сортил по невозрастанию..
    И проходя по отсортированному списку брал очередную вершину, считая расстояние и перебирая все вершины в пути до нее... соответственно, отмечая наиболее удаленные (не более 3-х), как пройденные.

    Но wa№8    :(
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Короче говоря, мораль такая: посылать в открытую практически бессмысленно. Кто не согласен?
Тройка призёров со мной, видимо, почти солидарна ;)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    я думаю нет
  • 15 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    неравенство 1 > 0 думает иначе
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну, скажем, в этой системе есть ещё забавное неравенство 2 * 1.5 > 3 * 1 ;)
      На тренировочном раунде я это ощутил.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Бывает, что это не так.

    Например, есть задачи, в которых приходится разобрать много случаев. Их, возможно, эффективнее сдавать в открытую.

    Ещё бывает, что очередная задача написана, но времени на следующую не осталось, даже времени как следует протестировать не осталось. Если уверен в решении, можно её послать втёмную. Если нет — логично послать в открытую, чтобы иметь возможность получить хотя бы 1 призовой балл.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А дорешивать там можно будет?
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Вообще немного расстроило то, что контест оказывается продлевали, а я прохлопал( как раз в 22 минуты я дописал задачу А. Жаль, что у Бороды нет ни всплывающих окон с сообщениями, ни голосовых объявлений)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Кто-нибудь смог сдать что-нибудь на дорешивании?

Мое решение находится в состоянии Running уже ~3 часа, при этом клар послать нельзя, потому что если у тебя есть непроверенные сабмиты, то страничка обновляется каждые 5-7 секунд и весь написанный текст стирается...

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    ну за 5-7 сек можно успеть отослать клар:)
    хотя если там никого нет то и клар не поможет, лучше снарку на почту
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Вопрос по задаче Д второго раунда. Почему не проходит следующее решение:

1) Посчитать h=v*v/(2*g);

2)Рассмотерть числа (int)(h+1),(int)(h-1),(int)(h). Из них выбрать максимальное такое, что 2*g*h<=v*v. Это число и есть ответ.

Сдавал в темную - ронг на первом тесте. Странно. В правилах читал, что первые тесты - тесты из условия. На них у меня на компе все прекрасно работало.

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    У меня тоже не проходило такое решение.

    Потом переписал так:

    cin >> v;
    v*=10*v;
    cout << v/32 << '\n';

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Судя по всему, проблема с точностью. Хотя она должна ликвидироваться проверкой числа (int)(h+1)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Возможно, помогло бы сделать 2*g*h<=v*v+eps.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Тут просто нужно обрезать дробную часть числа h. floor например.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как задачу C решать? Делаю бинарный поиск — WA12. (Код тут)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Начнем с того, что O может быть нецелым (в том числе в одном из семплов, но там это, видимо, не влияет на ответ)
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Эмм.. O и в условии и в сэмплах целое. Это x_i могут быть нецелые.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        хм, действительно. Ну тогда приходит в голову только точность - все-таки ставить в бинарном поиске ровно точность обычно ничего хорошего не дает. Учитывая, что в printf потом идет округление до 7 знаков - если и ошибка, и округление были в ненужную сторону, то все будет плохо
  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Всего-лишь заменив 2 cout на
    printf("%.9lf\n", (double)O / N);
    и
    printf("%.9lf\n", (double)O / (N + 1));

    получается OK.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Наверное cout вывел что-то вроде 1e+008 и система не смогла это прочитать. Попробуй послать апелляцию если точно такой код не прошел во время контеста.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Спасибо!
        Во время контеста дописать не успел, к сожалению (или к счастью:) )
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Да, мне тут объяснили, что проблема в том, что по умолчанию << выводит не более 6 цифр после запятой.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ну вот видимо хотя бы так можно сделать больше знаков
          cout.precision(9);
          cout.setf(ios::fixed);
          long double q = 1e-9;
          cout << q << endl;
  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Если интересно - http://pastebin.org/295586 решение O(N*log(N)) без бинарного поиска.
15 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
а меня одного смущает, что на Фибоначчи работает обычное(возведение в степень) решение на java?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Мне лень было писать длин. арифметику на С++. Так что можно сказать,что пишущие на java имели на этой задаче солидное временное преимущество.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Дело не в этом; та же программа, которая у меня только что получила ОК, на моем компе уже на n=10^6 работает минуту.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        у меня тоже самое
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Да это жесть... Эта задача встречалась мне когда - то на opencup-е, там были ограничения, при которых в лоб не проходило. Тогда вроде бы как мало кто ее сдал.
        P.S.: Я правильно понимаю, что по-хорошему надо считать числа с помощью возведения матрицы в степень (допустим первые 300 знаков)?
        • 15 лет назад, # ^ |
            Проголосовать: нравится +2 Проголосовать: не нравится
          Последние цифры — возведением матрицы в степень, а первые — через логарифмы, используя формулу Бине.
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Аа, ну да, есть же еще эта формула. Совсем про нее забыл. Спасибо!
          • 15 лет назад, # ^ |
              Проголосовать: нравится +3 Проголосовать: не нравится
            на самом деле чтобы 2 раза не вставать я первые 4 цифры вычислял в той же рекурсии с матрицей - просто считаем в даблах, а если нужный элемент стал больше 10000 - делим все
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      ага. просто наверно задача предполагает несколько другое решение.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Действительно работает :o Как так?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Система легла
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Хе-хе. Ну хоть не у меня одного ничего не грузится)
15 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится
01.06.2010 (вт) 19:20. В связи со сбоем сети мехмата МГУ третий раунд "Яндекс Open 2010" переносится на резервный сервер. Соответствующие ссылки заменены.

Обновите http://contests.snarknews.info, там изменена ссылка "войти в систему".
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
В чем загвоздка задачи F? В том что может быть петля в столицу, которую удалять не надо?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Какая еще петля? Там же дерево, поэтому загвоздок там нету. Обычный дфс.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Видимо я что-то не понимаю в задаче. Если это дерево, то почему недостаточно удалить все ребра ведущие из столицы и на этом все?
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну это может быть слишком дорого. Надо весь минимальную стоимость получить.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          По-любому же придется удалять все ребра из нее. В противном случае из ближайшего же города можно достичь столицы.
          • 15 лет назад, # ^ |
              Проголосовать: нравится +4 Проголосовать: не нравится
            Нас интересуют города только в листьях. Именно там по условию обитают участники онсайта.
          • 15 лет назад, # ^ |
              Проголосовать: нравится +4 Проголосовать: не нравится
            Это если не прочитать в условии, что участники в листьях
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            На тест:
            4 1
            1 2 1000
            2 3 1
            2 4 1

            Столица должна быть недостижима из листьев, про остальные города ничего не сказано.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Это называется "не рой другому яму".
Прикалывались-прикалывались над Воронежем, и вот сделали серьёзную заявку на "Худший контест 2010".
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    А по-моему, наоборот: иметь резервный сервер — это круто.

    Вот оповестить участников так, чтобы все гарантированно прочитали — действительно, непонятно как. Главную страницу соревнования можно всё-таки не догадаться обновлять раз в пару минут. Разве что почту всем вошедшим в контест рассылать?..
    • 15 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится
      Падать два раза из трёх -- это некруто.
      В 3 раунде среди тех, кто решил все задачи, победил, получается, тот, кто раньше всех нашёл ссылку на резервный сервер. Это тоже некруто.
      Оповестить можно и заранее.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +10 Проголосовать: не нравится
      Во время падения снарк смог поднять резервный сервер за буквально несколько минут, с загруженным контестом, поставленным eJudge и прочее.
      Значит, failures в принципе ожидались (особенно после опыта прошлого контеста), и сервер держался на этот случай.
      Вот в данном случае я бы счел резонным до тура указать, что в случае падения будет активирован резервный сервер, добавьте ссылку на него в закладки. Ну или хотя бы знайте, что такой сервер будет :о) Если бы я не зашел сюда, я бы и не знал, что такой сервер есть, и ждал бы пока встанет тот :о(
15 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится
В связи с повторным сбоем сети МГУ, происшедшим во время третьего отборочного раунда "Яндекс Open 2010", основной сервер соревнований был некоторое время недоступен. Турнир был перенесён на резервный сервер, но, к сожалению, многие участники не прочитали соответствующее сообщение на официальном сайте турнира, и в результате вынуждены были ждать восстановления связи. С учётом высокой плотности результатов в верхней части таблицы последствия сбоя существенно повлияли на итоговую расстановку участников. Кроме того, отдельные участники использовали ситуацию для несанкционированного выяснения вердикта по "закрытым" задачам, отправив на новом сервере те же самые задачи "в светлую".
Таким образом, по совокупности обстоятельств прошедший турнир объявляется внезачётным, третий раунд "Яндекс Open 2010" переносится на резервную дату - 20:00 02.06.2010.

А у меня завтра в это время футбол. Эх, могу ведь и не пройти (хотя при текущих результатах я проходил бы именно по результатам 2 первых туров)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    > Кроме того, отдельные участники использовали ситуацию для несанкционированного выяснения вердикта.

    Ну че, отдельные участники, признавайтесь, кого бес попутал?
    Удобно, черт возьми, и не надо никакой возни со вторым аккаунтом :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    Для меня, как для человека, который даже если бы имел шансы пройти, все равно не смог бы поехать, расклад очень клевый. Так как в этом случае эти отборочные не более чем лишняя возможность написать контест в, как выяснилось, очень динамичной и прикольной обстановке, то получившийся косяк с сервером с моей точки зрения это просто еще один лишний контест, что однозначно круто :о)
    Плюс это неплохая подготовка к отборочным TCO - надрючиться не косячить в 250 :о)
    • 15 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      Я скажу честно, без всякой иронии, Яндекс Опен мне нравится с каждым раундом все больше и больше.

      На данный момент меня лично очень интересует кто является автором задач? Кто этот герой, которому завтра в рабочее время придется придумать 6 новых задач и составить комплекты тестов для них? Или жюри предусмотрительно заранее подготовило не только резервный сервер, но и резервный проблемсет?
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        На любых отборочных, включая TCO, GCJ, всегда есть резервный комплект. И я уверен, что не один.
        Так что в данном случае даже если бы не было прецедента со вторым туром, я уверен, что у Олега был бы резервный комплект.

        На онсайтах тоже всегда есть резервный комплект я думаю, потому что всегда есть шанс срыва соревнования.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Да ладно прибедняться, у тебя на ТС рейтинг выше моего ;)
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Это мало о чем говорит :о) График-то у меня стабильно убывает - мой рейтинг не более чем наследие пористости двухгодичной давности, которая давно куда-то улетучилась с прекращением тренировок :о)

        Вот помню я крутое время, когда во всей России выше меня были только Петя, Станкевич и ты :о)

15 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится
Судя по всему, я не единственный, кто решил, что K — это количество Красных шаров.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    Я пять раз на этот счет условие перечитал :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Такое ощущение, что названия переменных специально сделаны, чтобы запутать.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Кстати, это же должно ловиться тестом из условия, если не подгонять под него решение, конечно. Или нет?
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну мой ход мысли был таков.
      Раз на входе сначала идет количество красных, а потом синих,
      значит и выводить надо сначала вероятность победы красных, потом синих :) С сэмплами все сходится
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        =). У меня была абсолютно аналогичная проблема, условие, перед сабмитом так и не перечитал.
15 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Да, вот повторенный третий раунд доставил.
И по задачам, и по проведению.

По задачам:
B, D -- Страшно посылать "вслепую" задачи, которые могут упасть по точности. На SN*S хотя бы ресабмитнуть можно :)
C -- TeX такой TeX. Похоже, авторы подразумевали "letter=i", в то время как в условии "letter = i". Заакцептившие, проверьте, проходит ли ваше решение тест
A = 2
B = 1
AB-

E -- где там все попадали?!
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    C ) Написал sscanf ом и даже думать не пришлось про пробелы. удобно.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    То есть в С могли быть такие тесты? (с пробелами)
    Если тогда понятно где я ошибся=)
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Непонятно, могли или нет.
      Мне кажется, что не могли, но в условии это было отражено недостаточно ясно.
      Тут лучше перестраховаться, конечно, особенно пишущим на яве.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        И на шарпе)
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Из регламента:

          Официальными языками программирования турнира "Яндекс Open 2010" являются C, C++, Java, Pascal/Delphi.


          К тому же, в шарпах есть кавайный StringSplitOptions.RemoveEmptyEntries.
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Да да, знаю
            Просто почти всегда не пишу. И часто жалею потом из-за этого
            Тем более я разбивал только на "="
            И шарп же был. Или что значит официальный? На онсайт контесте? Ну мне не светит все равно.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Не могли все-таки, формат именно "<letter>=<value>"
        Просто я не заметил, что могут быть не инициализированы
        И у меня было обращение к несуществующему элементу словаря
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      не было
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Блин, моя F упала из-за того, что я забыл изначально посещенную клетку проставить. В итоге она падает, если мы находимся в клетке со скутером и со всех 6 сторон окружены вулканом...
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Еще бы дорешивание работало...
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Забавно, что все 15 прошедших занимают места с 1-ого по 17-ое в итоговом рейтинге.
То есть вся крутая система снарка по прохождению почти совпала с топ15 по итогом трех раундов :о)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Ну, тот факт, что они будут коррелировать - был очевиден с самого начала. Но ведь не совпало полностью