Автор RussianCodeCup, история, 9 лет назад, По-русски

Всем привет!

Чемпионат Russian Code Cup 2015 приближается к финишной прямой. В ближайшее воскресенье 14 июня в 13:00 состоится отборочный тур RCC-2015. В отборочном туре примут участие 604 лучших по итогам трех квалификационных раундов — борьба была такой напряженной, что в первой и третьей квалификациях 200-е место оказалось поделено, и в отборочный раунд прошло по 202 участника.

Обратите внимание, что отборочный тур длиннее квалификационных и продлится 3 часа.

По итогам отборочного раунда 200 лучших раунда получат фирменную футболку наших соревнований, а топ 50 участников пройдут в финальный раунд и получат возможность сразится за ценные призы. Финал состоится 19 сентября и, как и в прошлом году, пройдет онлайн. В соответствии с правилами соревнований в финал могут пройти только те, кому на момент проведения финала исполнится 18 лет.

Приглашаем квалифицировавшихся принять участие в отборочном раунде, а всех остальных поболеть за своих друзей на сайте http://russiancodecup.ru!

  • Проголосовать: нравится
  • +33
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +209 Проголосовать: не нравится

Рассылка об отборочном раунде за пять минут до него — это пять!

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

Не могу залогиниться. http://www.russiancodecup.ru/crosslogin/ не отвечает.

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

Кто-нибудь дайте условия.

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

10 минут до конца... как же тяжело ожидание...

И самое интересное то, что я не понимаю, почему моя программа по B работает. Она ищет ответ, если его нет — выводит No. Если No программа не вывела, значит она нашла ответ. Я решил дополнительно проверить этот ответ на правильность. Проверяю и если ответ неверный — делаю return 1 (ну чтобы заслав, убедиться, что ответ действительно неправильный). По логике вещей, если ответ неправильный, то значит логика поиска ответа неправильная. Но на самом деле, если ответ неправильный, это значит что ответа нет... Изменив return 1 на вывод No — зашло.

И еще будет очень обидно, если меня выкинут из топ200 только из-за двух дебильных посылок с WA1 и PE2

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +36 Проголосовать: не нравится

    Минута до конца... ну за что вы так со мной, за что!

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится

    Кстати, если решение зашло, то оно уже не будет перетестироваться? Зачем тогда отсылать то, что уже Accepted

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

      Я и не посылал то, что уже Accepted, а то засчитали бы это за попытку еще. Мне очень трудно было получить этот Accepted, и он получился случайно... я был уверен, что если зашлю, то будет WA, ибо скорее всего я просто неправильный ответ нашел.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      Во-первых, можно за 5 секунд до конца отсылать всё подряд, не зная вердикты предыдущих посылок, авось что-нибудь зайдёт (год назад у меня такое прокатило). Во-вторых, можно узнать, зайдёт ли код по другой задаче на макстесте, сгенерировав макстест внутри кода и заслав в решённую задачу: если будет ТЛ, значит, не зайдёт.

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

        Во-вторых мне бы тут не пригодилось, я изначально писал всё так, чтобы ТЛ не было)

»
9 лет назад, # |
  Проголосовать: нравится +40 Проголосовать: не нравится

Объясните новичку, почему этот код заходит на MSVC, но получает TL2 на g++? Задача Е, да.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Та же ситуация, ловил ТЛи на g++ (хотя локально не смог найти теста, где работало бы больше 0.8), а потом, памятуя о магической способности вижака под виндой рвать g++ в разы, решил перепослать под MSVC, и сдалось.

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

    Я в E проассертил, что у меня ТЛ не ТЛ =) наверное у тебя примерно тоже самое.

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

      Что-то типа того. assert(n > 100000) в конце кода благополучно упал.

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

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

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

        Все-таки это ботва какая-то, а кому надо из оргов репортить о таком?

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

    Хотел спросить, известна ли особенность, что на RCC g++ плохой. Видимо, неизвестна.

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

      мне кажется, что это какая-то ботва конретно на этом раунде была с ним, а не в принципе.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +17 Проголосовать: не нравится

      Под виндой все плохо. Я когда-то заливал задачу, у которой авторское решение под MinGW работало очень долго, под MSVC в несколько (в 7-10) раз быстрее было. В общем считывание и, предположительно, декструкторы STL'евских коллекций все тормозят. Причем так было не только на инвокерах, а на моем ноуте такая же фигня под виндой и MinGW наблюдалась.

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится +11 Проголосовать: не нравится

        Я уже как-то писал. Думаю, у вас просто сборка mingw неудачная какая-то используется. Если проблемы с ней известны, может не стоит ее продолжать использовать? Кроме того, 4.8.x вроде еще в 2014-м обновили до 4.8.4, ясно же, что исправили много багов со времен 4.8.1.

        Можешь найти то решение (у которой авторское решение под MinGW работало очень долго, под MSVC в несколько (в 7-10) раз быстрее было)?

        • »
          »
          »
          »
          »
          9 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Я полагаю, дело не только в сборке, а еще в sandbox, в которой run.exe запускает. Локально я время измерял тоже им.

          Найти решение сейчас не очень получится. Попозже как-нибудь, может быть.

        • »
          »
          »
          »
          »
          9 лет назад, # ^ |
            Проголосовать: нравится +21 Проголосовать: не нравится

          Миш, кстати, про сборки. У тебя есть 64-битная сборка 4.9.2+, в которой не тормозит stdio?

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

            Я такую не искал, у нас вроде везде 32-х битные используются.

      • »
        »
        »
        »
        9 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        У нас на отдельных машинах бывали проблемы с инвокерами плюсов, мы так и не разобрались, в чем дело. Суть была примерно следующая: объявляется vector<int> v[100000]; и получается TLE.

        Upd. Я предполагал тогда, что проблема примерно в том же, почему F5 и Ctrl+F5 запуск в вижаке существенное разное время работает — что-то вроде проверок кучи при/после деаллокации памяти.

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

        Насколько я знаю, в 64-битном компиляторе g++ 4.9.* проблема с медленным stdio, которая в следующих версиях останется. А проблемы с STL -- это проблемы именно настроек инвокера, а не компилятора.

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

213( Без понятия, почему В не заходит=(

»
9 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Есть подозрение, что по задаче E рантаймы временами отображались в вердикте как ТЛ.

»
9 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Последние две минуты выкинули с TOP-200. :((
203 футболок PLZ :D

»
9 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

А с какого момента результаты можно будет считать окончательными?

»
9 лет назад, # |
  Проголосовать: нравится +32 Проголосовать: не нравится

Отдам бесплатно свою футболку первому в ответах на это комментарий.

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

Как первую задачу то решать?

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

    перебор)

  • »
    »
    9 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Ищем все числа x и y, чтобы n — 2 * x — 3 * y == k, и 2 * x <= кол-ву нолей, и 3 * y <= кол-ву единиц, а потом прибавляем к ответу (a + b)! / (b! * a!), где a — текущее кол-во нолей, b — текущее кол-во единиц.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Данные две перестановки 0-1 позволяют из любой строки получить любую другую с таким же количеством 0 и 1. Перебираем кол-во нулей cnt0 в результирующей строке, смотрим можем ли мы стереть лишние нули по два и единицы по три, если можно до добавляем к ответу C(k, cnt0)

  • »
    »
    9 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Перебрать количество ноликов в конечном числе, если такое количество ноликов и единичек допустимо, то добавить к ответу C(k, количество_ноликов)

»
9 лет назад, # |
  Проголосовать: нравится +31 Проголосовать: не нравится

Задача D про числа Каталана?

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

    Да. И так как в C# нет подходящей структуры, я писал декартово дерево, чтобы решить задачу :D

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

    Кому как, я ее за 20 минут написал, а следующий час она у меня была про RE5.

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      А в чем проблема оказалась с RE-5?

      UPD: У меня был StackOverflow, увеличение стека вылечило проблему

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +10 Проголосовать: не нравится

      Ну блин, я готов нецензурно ругаться. В тренировки решение заходит на ура, что наталкивает на мысль, что проблема была связана с RCC GCC. Я, конечно, может сам дурак, что за час дебага не догадался отправить под другой компилятор, но я как-то не привык, нет у меня такого опыта. Это вдвойне обидно, учитывая, что до этого фейла я хорошо шел по турниру и мог претендовать на финал. И втройне обидно, так как после этого эйфория кончилась и на Code Jam я уже тупил.

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

        Кстати да, у меня то же самое. Я дописал строчку #pragma comment(linker, "/STACK:160777216") и отправил в тренировку, зашло, а теперь после вашего коммента отправил свое оригинальное решение, которое я отправлял на контесте, и оно тоже заходит без этой строчки. Видимо, это разница в общих настройках компилятора/линкера.

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

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится +67 Проголосовать: не нравится

        И вообще, жизнь пошла под откос после этого.

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится

        ОНСАЙТА ВСЕ РАВНО НЕ БУДЕТ

        А так я бы, может, тоже поругался, потому что абсолютно уверен, что у меня задача Е не получает OK на одной из посылок исключительно из-за проблем инвокера GCC (там sort на 10^6, 10^8 операций деления и 10^6 обращений к priority_queue не уложились в 5 секунд). Просто обожаю проблемы со средой в тестирующей системе без пробников.

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

          Ну вот на счет пробника вы погарячились, ведь был "тренировочный раунд warm-up".

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

    Yes,I solve it by catalan numbers

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

    Можно чуть поподробней? Что такое числа каталана на e-maxx я прочитал. Я вот как их применять к задаче?)

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится

      Если все приоритеты равны, то ответ — число каталана.

      Дальше не очень сложно понять, как решать

»
9 лет назад, # |
  Проголосовать: нравится +66 Проголосовать: не нравится

Давненько я на плюсы не переписывал...

»
9 лет назад, # |
Rev. 6   Проголосовать: нравится +3 Проголосовать: не нравится

Объясните как решать B.

Если образно я делал следующее:

  1. Проверяем что граф у нас двудольный и красим каждую из вершин в цвет доли.
  2. Теперь у нас есть несколько компонент, у i-ой компоненты ai и bi вершин в каждой из долей. Теперь надо выбрать какие из долей каждой компоненты идут в какие команды. Это я делал используя динамику T[кол. игроков в первой команде] = [индекс последней доли, которую добавили].

UPD:

Вердикт Wrong Answer

Ошибка в динамике, пришлось переделать следующим образом:

T[i][s] = номер доли 0/1 компоненты с номером i , при которой достигается количество игроков в первой команде s, если брать только компоненты с номерами от 1 до i. Ошибкой было то, что необходимо взять обязательно все компоненты. Такая ошибка получается, когда есть компоненты, в которой одна из долей пустая.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

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

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

    У меня долгое время был WA с таким решением, потом я понял, что неправильно написал динамику. И в конце концов решил просто проверять финальный ответ, действительно ли он правильный, и если нет, то просто вывел No и зашло.

»
9 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится

У кого-нибудь были проблемы с отправкой решения за 1,5 минуты до конца контеста?

»
9 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Я выиграл 4 футболку на этой неделе :]

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

Думаю в задаче Е нужен rejudje всех посылок на Visual. Сам не сдавал но думаю у многих были проблемы с g++.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +16 Проголосовать: не нравится

    Почему вы так думаете? Там какая-то особенная проблема из-за gcc есть?

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +24 Проголосовать: не нравится

      Да, есть. Одно и то же решение под g++ и под студией получает разные вердикты.

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится -8 Проголосовать: не нравится

        Я на Тимусе наблюдаю то же самое. Но в данном конкретном случае больше всего тормозил вывод, когда переписал его вручную — прошло (на g++).

»
9 лет назад, # |
  Проголосовать: нравится +96 Проголосовать: не нравится

Уважаемые организаторы! Это сообщение не призвано перекинуть на Вас вину за то, что я забыл об олимпиаде и начал ее писать со второго часа.

Однако хочу заметить, что напоминание, присланное за 5 (пять, Карл!) минут до раунда нафиг, простите, никому не надо. Оно не нужно тем, кто и так помнит. И мала вероятность напомнить тем, кто забыл — я не сижу постоянно дома и не проверяю почту постоянно. Как, думаю, и большинство.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +37 Проголосовать: не нравится

    Хаха, та же история ;) Только я вообще писать не смог :)

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

    В прошлом году пропустил из-за этого.

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

    Мне письмо пришло за 6 минут, но я тоже пропустил :(

    Хотя, наверно, это повлияло только на распределение футболок :)

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится +18 Проголосовать: не нравится

На сайте RCC появились тесты, но при переходе по ссылке выдаёт 403 Forbidden.

UPD: Тесты доступны. Кто-нибудь зальёт тренировку?

UPD2: А, нет, показалось. Архив битый выложили.

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Думаю, будет честно, если количество футболок увеличат до 205.

  • »
    »
    9 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

    Лучше до 324, а еще лучше до 604 :)

    Ну а так, согласен

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

      По-моему нужно 605, решил одного человека без футболки оставить?)

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

        Я что-то пропустил? В отборочном туре примут участие 604 лучших по итогам трех квалификационных раундов

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

          А в табличке 13 страниц, на 12-и по 50 участников, на 13-ой — 5.

          12 * 50 + 5 = 605 вроде как.

»
9 лет назад, # |
  Проголосовать: нравится +47 Проголосовать: не нравится

Добавил соревнование в тренировки: 2015 Russian Code Cup (RCC 15), отборочный раунд.

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится +142 Проголосовать: не нравится

Я прошел на онсайт находясь на 23-м месяце службы в армии!!!

P.S. Сделав сабмит за 10 минут до конца и с 50го места)

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +53 Проголосовать: не нравится

    Позравляю, но не хочу расстраивать, ноФинал состоится 19 сентября и, как и в прошлом году, пройдет онлайн.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      Вот треш. Так хотелось на онсайт. RCC11 на котором я был, был просто супер. Остается надеяться на хороший приз и на то чтобы втиснуться в топ10)

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      Ну, письмо с результатами раунда содержит такую фразу: "О формате и времени проведения Финала мы сообщим вам отдельно в ближайшее время."

      Можно быть оптимистом и понимать её так, что может всё же онсайт будет, хотя бы в формате "все собрались в офисе мейлру, написали контест и разошлись" :)

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

        Ну, мы год назад писали финал в Яндексе вместе с sankear, какое-то количество питерцев во главе с lperovskaya у себя где-то собирались. Можно устроить свой финал RCC с блекджеком и плюхами самостоятельно, например, в том же Яндексе (выходной же?)...

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +30 Проголосовать: не нравится

    А почему так долго-то? 23 месяца

»
9 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

Поменял часовой пояс на США, а календарь этого не понял и напоминание пришло только сейчас.

Рассылка после начала также порадовала.

Грусть, профекапил 3 футболки из четырех в этом году.

»
9 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Чекер к задаче В не проверяет, что номера команд в ответе участника — это числа 1 или 2. Можно вывести хоть 3, хоть 10, хоть что либо ещё.

Вот пример посылки 11586653, которая за счёт этого генерирует ответ на тест, где его быть не должно (возможно, для её просмотра требуется тренерский доступ в тренировках).

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится -11 Проголосовать: не нравится

    Начинаешь волноваться за сохранность своей почты после таких ужастиков

»
9 лет назад, # |
  Проголосовать: нравится +29 Проголосовать: не нравится

Когда пришлют сертификат?=)

»
9 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Разбор нашел: Тык