Автор KAN, 7 лет назад, По-русски

Всем привет!

Завтра, 17 марта 2018, в 18:35 по московскому времени состоится первый Уайлд-кард раунд VK Cup 2018. Кроме того, в это же время состоится неофициальная трансляция этого соревнования, в которой могут принять участие все желающие.

Раунды будут проведены по особым правилам и будут нерейтинговыми. Задачи были подготовлены командой Codeforces: fcspartakm, MikeMirzayanov и мной. Спасибо vovuh, GreenGrape, FalseMirror, Glebodin и vintage_Vlad_Makeev за тестирование и помощь в подготовке раунда!

В официальном раунде команды будут бороться за последний шанс попасть во второй раунд чемпионата, для этого необходимо попасть в 50 сильнейших команд.

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

Правила раунда:

Вам предстоит почти обыкновенный раунд по правилам ACM-ICPC. Будут предложены 10 несложных задач на 2 часа. Набор тестов для задач на время раунда содержит базовые тесты (но они значительно сильнее претестов традиционных раундов). После окончания раунда у вас будет 24 часа для поиска тестов против чужих решений, аналогично традиционным образовательным раундам. По завершению фазы открытых взломов мы добавим все успешные взломы и перетестируем все решения. Только после этого результаты раунда буду объявлены окончательными.

Основное отличие от традиционных раундов состоит в следующем специальном правиле.

Каждую задачу вы можете сдавать только на своем одном (и отличном от других) языке программирования. При этом разные компиляторы/диалекты языка будут считаться одним языком. Например, компиляторы GNU G++, GNU G++ 11, GNU G++ 14 и MS C++ - это один язык (группа языков) C++. Таким образом, во время раунда вам предстоит не только решить задачи, но и попробовать базово изучить новые языки. Мы не рассчитываем, что вы знаете 10 разных языков. Наверняка, вам придется быстро вникнуть во что-то новое, изучив основной синтаксис других языков за время раунда.

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

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

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

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

Группа языков Языки программирования / компиляторы Примеры
C GNU C, GNU C11 10903473, 17029870
C++ GNU C++, GNU C++11, GNU C++14, GNU C++17, MS C++, etc. 23794425, 5456501
C# Mono C#, MS C# 3195513, 3794163
D D 5482410, 2060057
Go Go 7114082, 21366098
Haskell Haskell 455333, 1668418
Java Java 8 25491359, 23678167
JavaScript V8 35963909, 35681818
Kotlin Kotlin 25779271, 25204556
OCaml OCaml 6157159, 1281252
Pascal Delphi, FPC, Pascal.NET 1275798, 1259434
Perl Perl 2519448, 1277556
PHP PHP 413942, 35875300
Python Python 2, Python 3, PyPy2, PyPy3 35883730 (Py2), 36179112 (Py3)
Ruby Ruby 1837970, 1289551
Rust Rust 25180002, 35652442
Scala Scala 35847980, 2456025

Кроме того, основные правила формата ACM ICPC: каждая задача может быть либо полностью решена (если решение проходит все тесты), либо не решена. Участники в результатах располагаются по убыванию числа решенных задач, при равенстве числа решенных задач~--- по штрафному времени. Штрафное время вычисляется как сумма по каждой решенной задачи времени, прошедшего с начала раунда до времени решения этой задачи, в минутах, плюс 20 минут за каждую неудачную попытку по каждой из решенных задач. Обратите внимание, что задачи не расположены в порядке возрастания сложности. Кроме того, вы можете перепосылать решение, даже если оно прошло все тесты, так как после окончания фазы открытых взломов будет добавлено больше тестов.

Удачи!

Разбор здесь.

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

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

Там небольшая ошибка VK Cup 2017

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

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

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

Why unrated? Codeforces should have at least one rated round every weekend.

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

    "The rounds will use special rules"

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

      Oh, I missed that. Anyway, they should have a rated round on every weekend. Some people like me who enjoy coding only on CF quite enthusiastically wait for weekends for rated contests :)

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

        There are other sites too that you can enjoy.

        Atcoder is having a contest tomorrow.

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

        Well, “should” is improper here.
        Cf doesn’t have any obligations of holding a round per week.

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

looks like we cant talk about the legend of Unrated contest in CF with the Users registered after 23 NOV

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

Are these problems similar to those in Codeforces rounds?

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

After the contest we will solve the first 2 problems in 2 vedios

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

Why I'm unable to select team when registering in the Official Round?

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

Wild-card Round 1 who has been last year is very pretty. One programming language for one problem. Js, perl, c++, python, java, pascal — all of this languages try use everyone!

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

contest duration ?

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

Коль это официальное соревнование, можно было бы придумать какую-нибудь пользу от взломов для официальных участников, а так это просто говорит о том, что авторы, возможно, подготовили не очень хорошие тесты. Представил ситуацию, что полуфинал ACM ICPC проводится с фазой открытых взломов...)

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

Finally, unrated contest. It's becoming difficult to find such contests in Codeforces.

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

and where are the rules?

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

Не судьба было придумать новые правила?

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

То есть, например, я сдал задачу А на С++, а задачу Б на python. Другой участник от меня не зависит и может сдать задачу А на python? Не совсем понял этот момент.

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

Why the rules are the same as last year? I expect something new and interesting .QvQ

»
7 лет назад, # |
Rev. 2   Проголосовать: нравится -45 Проголосовать: не нравится

we will have some problems with compiling today (10 unique programming languages )

we can use online compilers :)

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

The rules are the same for unofficial participants ?

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

Very nice opportunity to try new languages.For me I used :

Java8 — Python — C — D and C++ (my main)

Was a very good experience.

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

Hi, could you please add the problems to problem-set so that we could submit them in any language we want? there were some really good problems...... I would really love to get a chance to submit them..... thanks.

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

Just 1 minute late ;( http://codeforces.me/contest/953/submission/36367508

We kept C++ for the hard problem and couldn't use it :D LOL

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

I solved 8 problems in 8 languages I have barely seen and used, and I didn't have enough time to solve a problem in C++ (my main language).

The contest was fun anyways.

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

    I used the same strategy and only passed my C++ problem in the last 24 seconds

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

Colorful, Colorful and Colorful!!!

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

I used javascript, C#, PHP, Ruby, Python 2, D, Java, C and C++ . It was fun like last year.

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

    Congrats, nice result! We used C#, Java, Python, C, Kotlin, Go and D. Without C++ it was really funny :D

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

Есть ли штрафы/бонусы за неудачные/удачные попытки взломов? Если да, то какие?

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

I think the language restriction should be removed in practice mode. Maybe I want to solve every problem in all languages lol.

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

As the contest is finished, can we submit in same language?

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

can we discuss the problems now in the comments or should we wait until the hacking phase is finished?

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

Спасибо! 8 лет ждал такого контеста. Почаще бы, и побольше бы времени и задач, чтобы больше языков попробовать.

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

how to solve J,E ?

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

    E's approach is quite straight-forward:

    Use a stack to store the new array. Iterate through the original array, and for each element, push it to the stack, and while the stack size is greater than 1, and its top element has the same value with is nearest element below, merge these two elements.

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

    To solve J, I maintain a set of disjoint ranges. For example: if I insert the range [2, 4] and then [3,6], my set will contain only {[2, 6]}. But if I insert [5, 6] instead of [3, 6], the set will be {[2, 4], [5, 6]}.

    You can see that the answer will be the amount of elements in the set, because the points that belong to different elements of the set will never coincide.

    You can see my implementation, but if you don't understand something, please feel free to ask!

    PD: this kind of set can be very useful, you should implement your own! :)

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

Че, пацаны, квиксорт?

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

    Сишный умеешь ломать?

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

      Умею только если там детерминированная функция (например (L+R)/2) или если random возвращает одни и те же значения (как в FPC / Delphi)

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

        Ты ломаешь по TLE подыскивая случаи когда он работает за квадрат?

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

          Да.

          Это не так сложно, упражнение уровня Div 1 A / Div 1 B.

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

      GCCшный qsort, если на компьютере много свободной памяти вызывает сортировку слиянием :)

      По ссылке приведена реализация: qsort, который вызывается у тебя, находится в самом конце.

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

      Мой сишный qsort сломали так http://codeforces.me/contest/926/hacks/428220/test

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

        Как и мой )

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

          Но видимо шафл, даже не равномерный, должен спасать это этого

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

        Забавно. Генератор на моём компьютере отрабатывает мгновенно, а в запуске кодефорса 4 секунды. Наверное в MinGW он по-другому реализован.

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

    Зачем надо было себя ломать?

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

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

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

Well,as an OI-participant,I can only use C/C++ and Python 3.

Fortunately, a friend of mine can coding in java and I tried to use pascal and C# for I think they are similar to C.

Finally, we solved 6 problems. I have to say that it's an excellent round!

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

Не работает генератор взломов на С++ 17. проблема была еще на первом раунде, до сих пор никаких изменений.

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

Could we submit these problems by any language now? It's difficult for me to translate C++ to other language and I really want to have change to slove these problem...

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

    You can add these problems to a mash up in the gym and then you can solve them without the language restriction.

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

      Thanks a lot...In these days I have started the virtual participation of this contest many times to unlock the limit of language. But I could submit only one problem during each VP...