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

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

Мы планируем во время сборов провести разбор задач и сделать онлайн трансляцию, чтобы вы имели возможность задавать вопросы автору контеста. Скорее всего это будет в понедельник. Хотелось бы поинтересоваться, какое время будет наиболее удобно для большинства? Сейчас рассматриваются варианты в 16:30 (раньше нельзя из-за лекции) и в 18:00.

Ссылка на разбор: edgetv.ru/edgetv/ Начало в 16:30

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

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

А завтра ПТЗшный контест будет?

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

    Нет, из птз контестов не будет ни одного ГП

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

      Это круто, спасибо.

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

      fuck yeah!

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

      И как, вроде бы, говорили, планируется что в принципе не будет ГП, когда его онсайт сильно раньше, чем сам ГП

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

мудачный контест

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

как решалась J?

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

    Считаем за 9 запросов, сколько каких букв в первых 6 симолах, вторых 6 и в третьих.

    Генерируем подходящие строки, поддерживаем множество подходящих.

    Выводим рандомную, пока не скажут "да"

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

      так там же ограничение на количество строк — 15, как так получается, что за 6 оставшихся запросов находится ответ?

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

    Наш сабмит в последние минуты почему-то заТЛился, но стресстест (с ограничением 15) прекрасно проходит. Будем делать сделующее: на каждом шагу генерить много рандомных строк и выбирать ту, которая даёт нам больше всего информации (просто посчитаем энтропию). Для первых 4х шагов информацию можно считать (3,4,5,6)-мерной динамикой, а дальше сгенерить множество потенциальных кандидатов — их уже мало — и считать втупую. Стресстест отлично работает, константы подогнали так, чтобы работало за секунду; видимо, это превращается в >4 секунд на java тестирующего сервера :(

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

      Мне хватило просто вывести 14 полностью рандомных строк и перебором найти ответ, подходящий под полученную информацию.

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

    Еще зашедшее решение:

    Генерация 14 строк(случайных). Подбираем строку которая подходит.

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

      можете подробнее и код?

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

        Кода нету(писала не наша команда)

        Зашло, насколько я понял, при m = 11 и m = 14

        Подробнее: генерируется m рандомных строк (Скорее всего, таких, что у них нет одинаковых соседних), запоминаются для них ответы. Потом генерируются все строки, которые подходят (тупо, за 3^18, но с отсечениями типа если совпало слишком много или слишком мало). Оставшиеся 15 — m раз Выводится случайная, проверяются какие до сих пор подходят

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

          не очень могу понять, почему какие-то рандомные магии заходят...

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

            Почему такая магия могла зайти — понятно. m рандомных подстрок дают более чем достаточно информации, другое дело, что результаты сильно скореллированы. Но если кому-то влом оценивать корреляцию, и не жалко времени за компом, — может попробовать это запихать. Хотя мне кажется, что простой рандом можно почелленджить (но я не уверен). Интересно было бы узнать, как авторы генерили тесты, и что умеют доказывать про рандом.

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

Тематические контесты — это конечно круто, но какой извращенец придумал это на OpenCup давать? :) Хотя бы предупредили, что контест будет тематическим (предупрежение "некоторые из задач будут интерактивными" не считается, это не то же самое, что "все задачи будут на загон всякой фигни с k попыток").

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

    все задачи будут на загон всякой фигни с k попыток

    Мы предлагаем новый формат контеста opencup! Все задачи "сгенерировать output без input", ограничения меняются случайным образом раз в полчаса.

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

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

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

      а мне кажется, вы один из соавторов (автор) контеста.

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

        Я принимал участие в подготовке почти всех условий. Не знаю, как это у вас соотносится с авторством. В принципе отношение "кажется" подходит.

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

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

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

      Внимание, вопросы авторам:

      1) Верно ли, что в задаче D при любой возможности выиграть робот выигрывал? Очень интересно увидеть оптимальную стратегию за робота в выигранной им позиции.

      2) В какой ситуации робот в задаче D сдавался? В частности, пытался ли он ходить назад и вперед бесконечно долго, если условие сдачи — отделенность от границы?

      3) Верно ли, что в задаче J тест выглядел как "загаданная строка" и не проверялось, что другая строка дает те же ответы на все заданные вопросы? Аналогично в задаче Е.

      4) если в некоторых задачах (AEJ...) тест загадан заранее и не зависит от действий программы, почему это не было указано в условии явно?

      5) (буквоедство) каким образом было в задаче С реализовано "случайно и равновероятно на отрезке [0.7;1]", если известно, что с вероятностью 1 загаданное число иррационально?

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

        А какое шаманство можно было толкать в D? Просто интересно.

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

          Я умею выигрывать на поле 11*11 за программу, но решение достаточно сложное, и кодить его очень долго. Вкратце — идея ограничивать (в центрированных) |x| + |y| = 4 и строить этюдный вариант в особенном случае, когда робот достаточно неудачно на этот квадрат выходит. Если сделать квадрат больше, то можно написать в общем-то некорректное решение, которое просто игнорирует возможность робота "неудачно подойти".

          К сожалению, такое можно писать только в конце контеста, а вердикты последнего получаса вообще пришли после контеста, поэтому делали другую задачу, по которой, как оказалось, был уже OK.

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

            Выигрывать в 11*11 — это сильно. Мы сразу придумали честное решение для большого квадрата, мне просто интересно, какой может быть некорректная стратегия, проходящая более-менее нетривиальные тесты.

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

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

              Ход уже в сожженную клетку разрешен.

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

                В условии же сказано, что нельзя сжигать клетку дважды?

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

                Что же тогда вообще запрещено роботу? Как тогда понимать условие: «Robot can not fly or teleport, he moves around the field, so he can not go through burned cells»?

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

              Вот не знаю, правильное ли это решение, но мы строили диагональную рамку (просто "соединяли" клетки (0; 40), (40; 0), (80, 40) и (40; 80)) и жгли ближайшую по бфс'у клетку из неё (бфс запускали на 15 ходов). Когда сожгли всю рамку — жгли клетки, в которых робот был на предыдущем ходу.

              Это получило ОК.

              Тут надо как-то доказать, что робот за эту самую рамку не успеет зайти. Ну, или опровергнуть. Мы это не сделали.

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

          Есть довольно простое решение: За первые 8 действий выжигаем клетки (0, 1), (1, 0), (0, 79) и подобные (соседние с угловыми). Очевидно, что мы успеваем (если робот идет в одну сторону, надо на 1 ход прерваться, помешав ему).

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

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

            Мы сдали в точности то же самое, мне интересны именно шаманства :)

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

            Вроде как достаточно сжечь 4 клетки (1, 1), (1, 79), (79, 1), (79, 79). По идее, в таком случае его движение можно даже не прерывать. А дальше то же самое.

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

            Там вроде только 7 действий можно так делать, потом надо на один ход затормозить робота, чтоб его следующий ход стал 1, заблочить 8 клетку, и тогда уже вин.

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

      Если хотелось форсированного внедрения формата — надо было дать нормальный контест, а не 10 задач вида "а угадайте-ка ещё вот такой вот объект за k попыток". Сколько всего разумного и гораздо более приятного можно делать интерактивным — да те же онлайн структуры данных, что гораздо более интересно и близко с СП. А делать то что было — не круто, учитывая, что 90% сданных решений — шаманизм (неужели жюри умеет для всех своих решений честно доказывать, что они всегда работают правильно?), и тесты очень слабые (интеракторы даже не пробовали челленджить решения участников).

»
12 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится
Комментарий удален по причине нарушения правил Codeforces
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Просто не те условия в систему залили. Бывает, чо

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

    О_о? Где ты взял 40? Для 40 полный кэп

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

      да ты просто бог рандома — за 15 действий-то найти ответ, ага

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

        Рандом — это очень весело.

        Мы написали какую-то хрень по А (а именно — за ~36 действий узнаем для каждой буквы количество ее вхождений, а потом будем в лоб перебирать первую букву, вторую, третью и тд) и вставили пару рандом_шафлов. Итого — +49.

        Как, кстати, А решается?

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

          Будем поддерживать шаблон вида с1 * с2 * ck, вставлять в промежутки новые буквы. Вставляем сначала все a, потом все b, ... в конце — все z. После этого выкидываем промежутки и выводим ответ. Промежуток для вставки очередной буквы ищем бинпоиском, вставляем в самый левый промежуток, в который можно (если без бинпоиска — получается 80 действий, бинпоиск спасает).

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

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

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

          Совсем простое решение. Узнаем за 26 действий какие буквы входят. Теперь будем строить — перебираем из пула еще доступных букв очередную. Нам понадобится (кол-во оставшихся букв — 1). Теперь если кол-во оставшихся букв + 10 — кол-во уже найденных букв > 10, то текущая буква точно больше не встретится, иначе проверяем answer + * + буква + * — входит ли данная буква дальше. Таким образом все будет сделано за 26 + 9 * 10 / 2 + 1 операцию

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

          26 — проверка вхождения букв.

          xx — подсчет кол-ва вхождений каждой буквы

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

          1 — вывод ответа.

          xx — бинпоиск. Левая граница у входящих = 1, у невходящих = 0. Правая граница = 11 — sum(левая граница других букв).

          Зашло с первого раза без шаманства. Не уверен, учитывается ли вывод за попытку. Так как количество запросов на бинпоиск и генерацию ответа связаны, решение как-то укладываеся в 75 запросов.

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

            мы считали количество вхождений без бинпоиска, там получится что-то около 26+10+5+3+2+2+1+1+1+1. Дальше, если какие-то буквы встречаются больше 2-х раз, рассматривали только первую и последнюю. Любые буквы такого вида можно сравнивать за один запрос, поэтому их порядок находится сортировкой. Остальные буквы по одной вставляли в имеющуюся строку.

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

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

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

"Ошибка проверяющей системы" Что это значит? В таблицу результатов попытки не занеслись.

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

Забавно, что многие участники кубка пишут по скайпу. Поэтому можно после контеста всем вместе созваниваться и устраивать разбор :)

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

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

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

    Наверное, обратиться к координатору вашего сектора.

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

Когда будет открыто дорешивание?

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

    "только после финализации результатов проверки" — так написано на opencup.ru

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

А что значит столбец SE в таблице результатов(последний)?

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

Хочу искренне поблагодарить авторов за смелую идею проведения такого контеста. Лично мне контест очень понравился. Очень интересные задачи, требующие непривычных подходов. "Немного подумать" избавляет от необходимости "много шаманить". Жалко, просто не успели добраться до большей части задач. Интерактивные задачи сложнее тестировать локально, поэтому приходилось либо сабмитить без тестирования, набирая кучу минусов, либо писать вспомогательный код для тестирования, что отнимало время.

Хотя проблемы в подготовке имели место быть. "Ошибки проверяющей системы" (на этом тоже кучу времени потеряли), постоянные сообщения и апдейты условий, неясности и неточности в них, по-видимому, еще остались. У людей проходило палево, это вообще в интерактивных задачах бывает сложно отсекать. Это не просто ваш локальный контест, а этап Открытого Кубка. К подготовке надо более тщательно относиться.

Кроме того, объективный факт — чем больше контест перегроблен, тем больше его ругают. Потому что в большинстве своем люди чувствуют неудовлетворенность от контеста, если решили на нем меньше половины задач. И они прыгают от счастья, когда сдают 8-10 халяв, даже если при этом до сложных задач вообще не добираются.

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

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

    как-то вы слишком категоричны, собственно, чем хороши перегробленные контесты, почему бы их не ругать?

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

    Я писал этот контест вне конкурса, изложу свои впечатления (следует сразу предупредить, что я нарвался на CF/RTE 1 во всех задачах, которые сдал, так что могу быть не объективен):

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

    2. Надо представлять силу решающих команд. Контест, который отлично подходит для онсайта кубка, скажем, будет плох для отдельного этапа и наоборот. Когда только 1/6 участников решает более двух задач — это очень демотивирует. Я прекрасно помню, как мы на первом/втором курсе писали четвертьфинал/чемпионат Москвы — отбивало всякое желание продолжать этим заниматься

    3. Задачи были какие-то слишком одинаковые. Интерактивные задачи предоставляют куда больший простор для выбора тем — а тут было несколько однотипных задач

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

      Планируется ли реализация движка interact-ора в плагине?

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

        Вообще планируется, но пока тупо непонятно как. Если установится какой-то общепринятый (среди контестов, где можно пользоваться плагином) формат выкладывания интерактора — это будет одно. Либо нужно писать свой формат + простой способ переключиться в режим без интерактора (если его влом писать)

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

Вот расскажите кто-нибудь, пожалуйста, как можно тестировать интерактивные задачки? Мне сегодня посчастливилось писать две, и в обеих несмотря на то, что я написал жалкое подобие интерактора, который, на самом деле, не интерактор, а просто самописный метод, с помощью которого программа обменивается данными с интерактером (то есть выглядит так

int Get() {

ifdef DBG

...

return ...

endif

string str;

cin >> str;

return str;

} )

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

Неужели кто-то пишет честный интерактор с межпроцессным взаимодействием?

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

    я писал в главной программе


    freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);

    а в интеракторе


    freopen("input.txt", "w", stdout); freopen("output.txt", "r", stdin);

    только потом обмениваться данными приходится странными способами


    while (scanf("%d", &x) != 1);
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится

    под windows такого не нашел, но когда есть счастье решать из под unix, то очень рекомендую использовать именованные каналы

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

      Спасибо, в unix я тоже умел это делать.

      Кстати, странно, что ты не нашел под windows, в первой ссылке на википедии есть раздел, в котором что-то написано про то, как это устроено в windows :)

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

        правильней было сказать не "не нашел", а "особо не искал"... посмотрел что не все так просто и отложил))

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

        Написано-то написано, только вот аналога утилиты mkfifo что-то не видно… В таком свете способ nk.karpov выше выглядит довольно привлекательно: пишется легко и быстро, решение можно посылать без изменений.

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

      Под Windows можно сделать Pipe и подставлять в параметры запуска программы. Примерно так:

      struct handles_t
      {
      	HANDLE hIn;
      	HANDLE hOut;
      };
      void call(LPTSTR name,LPTSTR cmd, PROCESS_INFORMATION *pPI , handles_t *pHandles){
      	SECURITY_ATTRIBUTES sa;
      	STARTUPINFO si;
      
      	::ZeroMemory(&sa,sizeof(sa));
      	sa.nLength=sizeof(SECURITY_ATTRIBUTES);
      	sa.bInheritHandle = TRUE;
      
      	::ZeroMemory(&si,sizeof(STARTUPINFO));
      	si.cb = sizeof(STARTUPINFO);
      	si.dwFlags = STARTF_USESTDHANDLES ;
      
      	::CreatePipe(&pHandles->hIn,&si.hStdOutput,&sa,102400);
      	::CreatePipe(&pHandles->hOut,&si.hStdInput,&sa,102400);
      
      	::CreateProcess(name,cmd,0,0,TRUE,0,0,0,&si,pPI);
      }
      

      После этого interactor может работать с hIn/hOut.

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

Я правильно понимаю, что зарегистрироваться на edgetv.ru обязательно для просмотра разбора? Просто отчаянно не хочется принимать пользовательское соглашение в виде страницы 404, на которую в данный момент указывает edgetv.ru/license.

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

Трансляция начнется через пару минут. Регистрация для просмотра не обязательна.

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

Кто-нибудь знает как делать B? Как я решаю: Каждой ячейке ставится в соответствие переменная. Делаем 1000 случайных циклических сдвигов. После каждого сдвига в систему добавляется новое уравнение. Потом решем систему. Добираемся до всех пустых клеток при помощи сдвигов и одного смещения. В Див2 это решение проходит. В Див1 программа проверяется несколько минут и выдаёт ТЛ1.

P.S. Любая программа выполняетя несколько минут и выдаёт TL1. Видимо, пока её сдать невозможно.

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

Можно где-нибудь посмотреть оффлайн вариант разбора или текстовый вариант разбора? Заранее спасибо.