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

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

Мы открываем Алгоритм-2016 — чемпионат Яндекса по программированию с оригинальными правилами, подарками и денежными призами для лучших участников. 512 лучших участников отборочного этапа получат футболки с символикой конкурса.

Если вы чувствуете в себе силы побороться с опытными программистами за призовой фонд в 540 тысяч рублей, ещё не поздно зарегистрироваться и показать, на что способны. Регистрация открыта до конца квалификационного раунда.

10 мая в 21:00 по московскому времени (UTC+3) пройдёт разминочный раунд, а весь день 21 и 22 мая можно будет поучаствовать в квалификационном. Все, кто решит в них хотя бы одну задачу, перейдут в отборочный этап, в трёх раундах которого определятся 25 финалистов. Финал пройдёт 28 июля в Минске.

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

Ожидая начала чемпионата, можно посмотреть на то, как проходил чемпионат в 2015 году.

Желаем удачи!

UPDATE 01. Разминочный раунд состоится уже сегодня в 21:00 (UTC+3). Вы можете квалифицироваться в отборочные раунды, решив хотя бы одну задачу сегодня.

UPDATE 02. Опубликован разбор задач разминочного раунда.

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

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

В правилах написано, что 512 лучших получат футболки. В прошлом году, на 500-ом месте был человек получивший 0 баллов, и решивший 0 задач

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

    В этом году мы постараемся сделать так, чтобы у ТОП-512 точно были решенные задачи в отборочных раундах.

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

      Я прошу прощения за любопытство, но меня всё это время интересует, как всё же были распределены футболки в прошлом году?

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

        Для получения футболки необходимо попасть в ТОП-512 отборочного раунда, решив хотя бы одну задачу в отборочных раундах. Так что в прошлом году, к сожалению, количество обладателей футболок было меньше, чем могло бы быть.

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

          Футболку Яндекса было получить проще всего (решить 2 задачи: одну на разминочном/квалификационном раундах и одну в любом из трёх отборочных раундов), но по качеству это лучшая футболка из полученных мной в том году.

          Футболка Google Code Jam — хорошая, по свободнее, чем у Яндекса, но после короткого времени начинает собирать на себе волосы, пыль и т.д. И стоит её почистить, как через полчаса она опять грязная.

          Футболка Russian Code Cup — не могу сказать хорошая или нет, потому что мало её одевал из-за специфики изображения спереди футболки. Вот сзади нормальный рисунок — логотип соревнования, а спереди... слишком специфичная информация. Вот в позапрошлом году "1+1=10" хоть и может вызвать у простых людей необычные эмоции, но всё равно они проявят любопытство к надписи.

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

          Футболка Codeforces — вроде бы указал на сайте M, на самой футболке написано M, но по размеру она явно S. Я смог одеть её... один раз... и не хочу повторять этот смертельный для футболки номер. Зато детишкам как раз будет.

          P.S. Указаны лишь футболки, полученные за участие в онлайн соревнованиях.

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

Sir, could you show us the t-shirts ?!

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

6.9. Место проведения финала Конкурса – Республика Беларусь, город Минск, пр. Независимости, 116.

12.1. Конкурс организован и проводится на территории Российской Федерации в соответствии с законодательством Российской Федерации.

Яндекс что-то знает? :)

Победители, занявшие первое, второе и третье места, соответственно получают следующие денежные призы: первое место — 300 000 рублей 00 копеек; ...

Учитывая место проведения финала, возникает очевидный вопрос — рубли таки белорусские? :)

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

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

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

    Отмечу, что на дату финала 300к белорусских рублей будет весьма впечатляющей суммой ;)

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

Что за мода пошла не оплачивать дорогу до места проведения? Ещё бы в Австралии финал провели.

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

    Кто-то сокращает количество финалистов, кто-то убирает онсайты совсем, кто-то не оплачивает проезд. Какой из этих вариантов предпочтительнее?

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

      Это, на самом деле, очень сложный вопрос. Может быть лучше градация — оплата дороги десяти лучшим, рады видеть ещё 30 дальше по списку, если сами приедете, а если и гостиница вам не нужна — то можем ещё 30 принять.

      Конечно худший вариант — просто убрать онсайт. Даже если соревнование после этого становится международным.

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

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

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

      А вот я не смог понять из правил: правда ли единственный способ участия в финальном раунде — онсайт в Минске?

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

        В финале можно участвовать очно в Минске или онлайн.

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

          Из правил вторая опция не следует никак

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

      .

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

        Как-то очень категорично прозвучало. Лично я надеюсь, что многие финалисты захотят приехать в Минск именно на финал, а потом захотят еще приехать в наш город.

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

Несовершеннолетние участники могут получить футболку за отборочный этап?

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

    Да, несовершеннолетние участники могут выиграть футболки

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

      Пожелание — можно футболки отправлять Fedex? :) С меня прошлый раз из-за кривых рук DHL при получении содрали почти 40 долларов пошлин, сборов и оплат услуг (при оценочной стоимости футболки около 7 долларов).

      Google и Facebook отправляли Fedex и ничего платить не пришлось.

      Хотя у кого-то может быть наоборот.

      Пока что я всем говорю, что футболка Yandex.Algorithms для меня самая ценная. :)

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

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

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

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

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

Футболки от Татьяныча?

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

Strange, I could not get past the registration page. It always shows "To view this page you have to authorize.", even though I have already been logged in to the site. Nothing happens when I clicked on the "authorize" after I logged in...

Anyone having the same problem? :(

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

There is no option for English alphabet captcha in account recovery :(

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

I tried to register, but it always shows "To view this page you have to authorize". I'm already buggily logged in with Facebook (it keeps logging out whenever it feels like), but I can't seem to register. How do I know if I'm already registered or not?

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

    I had the same problem. Then I tried replacing the option lang=en to lang=ru in the URL, and registration page appeared.

    Since I don't understand Russian, I switched back to English and it was still working.

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

      Thank you.

      I registered using the Russian version and a translator xD. Now once registered the English version shows up as well.

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

GG registration page is filtered :( (benefits of living in iran)

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

    Sorry about that. (Ads) You can always use Yandex.Browser with turbo mode! (/ads)

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

      Thanks, but to have yandex browser you have to download it, and guess what? filters... filters everywhere... lol! still, gl to all participants!

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

      unless access to turbo servers is closed too

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

Is filling in the obligatory fields (those with red '*'s) enough? I think I should at least provide an address for the T-shirts, if I somehow managed to win one.. But I couldn't find any fields about it.

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

    We'll supply you with additional form with shipping information, when you will score within top 512 of elimination stage — make sure to fill in correct email address though.

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

Не могу понять,почему в пробном контесте на платформе Яндекс за решение
перой задачи(A+B) выводит вердикт:RE,при том,что у меня в среде
разработке всё компилируется без проблем.
Вот сам код(на Java):
import java.util.*;
public class SimpleTest
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}

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

    А вы точно правильно и внимательно прочитали раздел ограничений, где написано, откуда нужно читать входные данные (из input.txt)?

    Пожалуйста, впредь задавайте такие вопросы через элемент интерфейса контеста "Сообщения" — так получится гораздо предметнее ответить на вопрос.

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

Kogda luchshe vtemnuyu a kogda v otkrituyu reshat?

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

    Если абсолютно уверен — в темную, если не уверен или цель решить хоть 1 задачу тогда в открытую

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

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

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

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

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

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

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

            Наверняка будет куча народу сдавших по 2-3 задачи, и судьбу футболок будет решать штраф, и тут слепые попытки, могут помочь их получить

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

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

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

                Это понятно, но когда ты знаешь что пролетаешь мимо места/футболки с текущим штрафом, то имеет смысл рискнуть, и хоть призрачный шанс, да появится

                Хотя при отсутствии обновляющейся во время соревнования общей таблицы, такое оценить будет сложно

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

I'm obligated to select an Eastern Europe city in order to register (even not being there), can I change my city after the registration ?

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

    sure! Elaborate on that issue in feedback page of the service (lower left corner), after the contest

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

what is the difference between an open and a blind submission?

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

    Blind submissions are tested only on samples, but you get negative penalty time if it's Accepted on the full testset

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

    see rules. In short — open submissions work like regular ACM submissions — you get penalty for time and wrong attempts and full feedback on testing. With blind submission you only have one (1) attempt to send submission that will pass sample tests and can't resubmit — if that submission is correct you get negative penalty time

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

А что за WA 14 в задаче про шашматы? upd: нашел, зачем-то кэшировал значения, еще и неправильно.

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

E — задача на пользование Гуглом Яндексом. Остальные более или менее очевидные.

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

    Гуглить тоже надо уметь :( Я попробовал, ничего не нашел, пришлось честно написать брутфорсное решение и найти закономерность.

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

Расскажите последние 3 задачи, пожалуйста.

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

    В "D" я строил опуклую оболочку, если хоть одна точка не вошла — невозможно, иначе переходим к следующему этапу проверки: берем из получившегося выпуклого пятиугольника каждое ребро (пусть e) и двух его ребер-соседей, если соседи пересеклись "впереди" (соседи смотрят от ребра e) то невозможно, ну а проверить легко с помощью векторного произведения.

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

кто-то расскажет адекватное решение С? Я написал 200 строк отборной фигни и оно прошло на последней минуте.

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

    Динамика по позициям игроков и тому, кто ходит. Переходы — вот прям делаем те ходы, которые сказаны в условии. Циклов не будет, потому что черные всегда уменьшают одну из координат.

    Код

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

How to solve problem F (Future Playlist)?

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

    One possible approach was to use matrix exponentiation and speed up multiplications using strassen's method. Eventually for large m the answer would approach a constant value and thus we don't even have to exponentiate to 10^(2016), much lesser will suffice. This could have passed the time limit (barely) but there must be a better solution.

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

    It is actually a problem of finding a limit distribution of the Markov chain. It is guaranteed that 1 is an essential state, so at first step we should remove all inessential states (those are the states that cannot be reached from any other state with non-zero probability). After that all remaining states (in particular, 1) form an irreducible Markov chain where all states are positive recurrent (meaning that there is non-zero probability to return from each state to itself). For such Markov chain it can be proven that the limit distribution is exactly the stationary distribution (i.e. the distribution that transforms to itself after one step of a Markov chain), so we can find it as a left eigenvector of matrix B of that chain using Gauss elimination.

    UPD: Looks like we don't even need to leave only essential states, it works even without it. All components of stationary distribution corresponding to the inessential states will be simply equal to zero that perfectly makes sense.

    I didn't implement this, but I believe it works. Also I've seen author's solution, it also has a Gauss elimination :)

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

      Would the power method work here instead of Gauss elimination?

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

        I'm not sure because the speed of the convergence is exponential, though the base of the exponent depend on the eigenvalues of the matrix that may be pretty close to 1. Each matrix multiplication is O(n3), you simply won't be able to perform many of them.

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

          The matrix multiplications should be only O(n2) right? We only need matrix-vector multiplications.

          Nevertheless, I just implemented it and it didn't pass :(. I'll have to see the test data before figuring out what's wrong.

          Code: http://pastebin.com/n0tGWTg7

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

            Oh, I thought you are talking about fast matrix exponentiation first, and then multiplying the result by the distribution vector.

            Still, my claim holds that you make too small number of multiplications. Think of the following test:


            2 1 0 eps 1 - eps eps = 1e-6

            In order to move the most part of the distribution from the second state to the first you need about ~ 1 / eps steps that is too much. The answer here is 1 (the limit distribution is a vector (1, 0)).

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

              Ah, I see. I eventually got this hacky solution to pass, by exponentiating the matrix just enough to be under the TL, and then finishing off with the power method to reach the necessary precision.

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

                Acutally, there's no need to exponentiate the matrix. As Zlobober mentioned, after removing all inessential states, you will get a new transitive matrix M with dimension n′ × n. Just solve the equations MX = 0 with an extra equation . You will get the final solution.

                Here's my accepted code.

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

Просто умрите со своими геомами с дискретным ответом.

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

    А что такого с этой геомой? Там такие ограничения, что она вся в интах делается.

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

      Можно не додуматься до нормального решения и написать в тупую.

      Переберем все перестановки из 5 точек, попробуем восстановить все возможные пятиугольники, пересекая прямые, образованные точками 1 2 и 3 4, точками 2 3 и 4 5 и т.д. Если хоть раз смогли получить выпуклый пятиугольник — Yes.

      В таком решении у нас пересечение прямых в целых — получается третья степень исходных координат в числителе и вторая в знаменателе. Потом проверка на выпуклость, нужно числитель умножать на знаменатель. Пятая степень. Не лезет.

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

Will there be an editorial posted somewhere at some point?

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

Is it possible to solve C using dynamic programming approach?

int winner[8][8][8][8][2];

int main()
{
    // Some clever method using dynamic programming.
    FillWinnersTable();

    if (winner[whitePosY][whitePosX][blackPosY][blackPosX][firstMovesWhite] == 1)
        cout << "White";
    else
        cout << "Black";
}
  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    • »
      »
      »
      8 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Isn't it memoization?

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

        Isn't it the same thing?

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

          Probably, I am wrong, but I always thought that dynamic programming is when you build up the solution bottom-up (without recursion).

          In the book "Algorithms" written by Dasgupta, Papadimitriou, and Vazirani, they make a clear distinction between memoizing technique and the dynamic programming.

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

            I think, that these two techniques do exactly the same thing (reduce some big peoblem to a set of smaller problems) but in slightly different ways. And I can't think of a problem, that can be solved with memoization, but can't be solved with non-recursive dynamic programming, and vice versa.

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

              It's good for us to argue about this, so we can brush up our theoretical knowledge :)

              Here are my arguments:
              1. There was no purpose in inventing the second name for dynamic programming. That is why memoization and dp have to stand for different concepts behind them. I don't believe they are synonyms.
              2. It is trivial to estimate the complexity of dp solution. That is not the case for memoization. It is not at all obvious that the solution will not TL or overflow the stack.
              3. Most importantly, dp solution and memoization solution will perform absolutely different set of operations. That is, in some cases memoization may explore only some part of solution space, whereas the dynamic programming solution will always explore all possibilities.

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

What to do with E? I was doing random shit and managed to pass 14 tests...

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

Научите посылать тестовую задачу в закрытую:)

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

Как решать D? Я предположил такой необходимый и достаточный признак:

Спойлер

и получил WA9. Набажал в реализации или предположение неверное?

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

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

    Мой код, который получает AC
»
8 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

Chmel_Tolstiy я заметил, что у Вас компилятор Mono C# используется без флага -sdk, поэтому получается сборка совместимая с .Net Framework 2.0 и можно получить CE из-за использования, например, Tuple в коде. Хотя Mono 2.10.8 поддерживает .Net Framework 4.0. А также из-за отсутствия ссылки r:System.Numerics нельзя использовать BigInteger. Скажите пожалуйста, в остальных раундах можно ожидать такую же настройку компилятора?

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

    Тот момент когда наконец кто-то что-то послал на с# в яндекс контест

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

      Действительно =)

      leonidvasilyev, порекомендуйте строку вместо
      exec mcs -optimize "$2" -out:"$3";;

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

        Я не специалист, но думаю, что вариант с dmcs предпочтительней:
        exec dmcs -reference:System.Numerics -optimize "$2" -out:"$3";;
        По идее можно передать аргумент -sdk:4, но конкретно для этой версии Mono из документации не ясно, будет ли mcs работать в данном случае:
        exec mcs -sdk:4 -reference:System.Numerics -optimize "$2" -out:"$3";;

        К сожалению, у меня сейчас нету возможности попробовать с Mono 2.10.8.1. Но вот такой код должен компилироваться и запускатся без ошибок, если всё в порядке:

        using System;
        using System.Numerics;
        using System.Collections.Generic;
        
        public class Program
        {
        
          public static void Main()
          {
            Console.WriteLine(Environment.Version);
            Console.WriteLine(Tuple.Create(99, "foo"));
            Console.WriteLine(BigInteger.Parse("999999999999999999999999999999999999"));
            Console.WriteLine(new Dictionary<int, string>());
          }
        }
        
        • »
          »
          »
          »
          »
          8 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Мы обновили настройки. Сообщите, если все еще что-то работает не так, как ожидалось и хотелось!

          Успехов.

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

Когда раунд 1.1?

Это, если что, цензурная версия мыслей по поводу задачи C.

Посылки всветлую слабо отличаются от посылок втёмную. Спасибо тестирующей системе за это.

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

    Шутка про то, что лучше кол-во таких контестов не увеличивать:o

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

    А что с ней было не так? Ну, не считая супер длинных очередей :)

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

Ответы no comments — это отличное подспорье, когда из-за баги в задаче ты сидишь и офигеваешь

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

What does "cumulative result" in T-shirt section mean? Is it calculated by overall accepted problems and penalties on every elimination rounds? If so, don't we have to take part in every round to get a T-shirt?

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

    From my experience from last year,

    First they sum the number of points you get, who has more stays in front (using that grand prix formula for giving points, sum all points you get during the 3 elimination rounds).

    Tie-breaks are made by number of problems solved (sum of number of problems during the 3 rounds).

    I am not sure about the last one, but I guess if you are tied in points and number of problems the tie-break is the sum of your penalty during the 3 elimination rounds.

    Edit: If you get a point in a round you are guaranteed a t-shirt as only 30 people get points in a round. Last year Petr got first place in the first round, he didn't participate in any other elimination rounds (if I remember correctly) and got a spot in the onsite finals (because he had a lot of points). Participating in more rounds gives more chances to get points and solve more problems (which is the first tie-break criterion), but it is possible to only participate in one round and get a t-shirt (though not advisable if you want the t-shirt and got no points for the round).

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

Непонятно как в это играть людям у которых зависимость от кол-ва посылок, ну хреново я проверяю код. 30 минут опоздания сервера это конечно ппц

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

    ага, узнавать об ошибке компиляции через 15 минут тоже очень клево

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

Кстати, расскажите, как можно в задаче с однозначным ответом добиться того, что у кого-то заходит, а у кого-то нет?

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

    Легко! У одного должно быть правильное решение, у второго неправильное.

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

    В соседней теме говорили, что там в 10 тесте числа не упорядочены были.

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

Когда разбор / как решить EF?

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

    В E, ответ не может быть меньше n - 1. Чтобы узнать, насколько он больше, нужно идти слева направо, поддерживая диапазон координат, в котором может находиться текущая граница. В начале этот диапазон — от 0 до 0, соответствует левой границе. При переходе через чёрную дольку, диапазон "отражается" от неё, после чего сжимается, чтобы быть между двумя чёрными дольками (или долькой и правой границей). Если диапазон получается отрицательного размера, то к ответу прибавляется 1, а диапазон расширяется до максимального. В конце проверяется, что правая граница входит в диапазон, иначе к ответу прибавляется 1.

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

Может ли кто мне помочь разобраться с этим (http://codeforces.com/blog/entry/45238) Если коротко, то получил вердикт "ручная проверка" и не знаю что он означает

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

Does the problem D (cold countries) of on-line round 1 has any solutions like this?

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

    Don't know what did you mean exactly. But the solution for this problem is also a formula ;). I computed it in O(p) and didn't try to reduce the complexity and simplify:

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

      I had tried to submit your code (and many other) but always getting WA6. What it could be?

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

        Dunno. Overflow maybe? Btw, I have #define int int64_t in my code ))

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

          Really, I've finally found it :) But your code have one too:

          return f[m] * f[w];
          

          can't be OK (100 0 0), but tests are weak.

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

            Hm. I think that everything is fine here. This line returns m!w! And we know for sure that either m = 0 or w = 0.

            Maybe I'm missing something ?

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

              Yes, 0! * 100! > M

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

              Oh no, it's cursed task, I should guess after 15 submits! You're right, that was bug in my precalc :)

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

А официальный разбор раунда #1 где-нибудь есть?

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

Есть ли возможность получить футболку не по почте, а забрать самому? Я из Минска, и, так как финал проходит в Минске, мне было бы удобно самому подъехать и забрать её. Если, конечно, я не смогу получить её по почте раньше.

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

    Отличный план! Укажите как место получения адрес минского офиса Яндекса и напишите, что заберете футболку самостоятельно.

    Минск, пр. Дзержинского, д. 5, БЦ Rubin Plaza, офис 318

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

      А как мне понять, когда я могу заехать и забрать? (:

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

      Эта возможность доступна всем, или Melnik особенный?

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

        Если мы говорим про Минск, то всем. Если другой город, то лучше отдельно уточнить.