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

Автор Sultan, 13 лет назад, По-русски
Сегодня в 20.00 по МСК состоится очередной SRM. Будем надеяться, что он пройдет без каких-либо заминок. Желаю всем удачи.
  • Проголосовать: нравится
  • +20
  • Проголосовать: не нравится

»
13 лет назад, # |
  Проголосовать: нравится -25 Проголосовать: не нравится
Vsem udachi!
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится
    Тот факт, что алфавитом русского языка является кириллица, еще никто не отменял. В Казахстане многие почему-то думают наоборот.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится +19 Проголосовать: не нравится

      а все ли клавиатуры в казахстане имеют  русскую раскладку?
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится -7 Проголосовать: не нравится

        Существуют виртуальные клавиатуры.

        Блин, теперь я капитан...

      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится +2 Проголосовать: не нравится
        Все официально поставляемые - да. Изредка встречаются ноуты без русских букв (привезенные из Китая, Штатов и т.п.), но на их клавы спокойно можно купить наклейки.
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Сейчас время 18:09 (МСК) : У кого нибудь заходит в арену?
»
13 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
А я напоминаю что арена показывает неправильное время, которое на час опаздывает.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    У меня правильное. 19-07 по Москве, СРМ в 20-02 в арене 9-07, старт в расписании 10-02.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Это лечится установкой обновления таймзон для Джава
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Сменил Java 1.6.0_29 на 1.6.0_30, помогло.
»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +19 Проголосовать: не нравится

Я один не могу зайти в комнату?

UPD: Отлично, зашел, зато теперь не могу открыть задачи.

»
13 лет назад, # |
  Проголосовать: нравится +28 Проголосовать: не нравится
Ждем 528.5?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +9 Проголосовать: не нравится
    Да вроде не должно быть - они отложили контест на 15 минут.
»
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
я внутри...
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    но толку нету, низя задачки открывать....
»
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Задачи не открываются :( Видимо таймер у них там сбился.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +21 Проголосовать: не нравится
    Основная проблема всех сканлайнов - главное не забыть событие открытия :-)
»
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Надеюсь задачи так не подведут.
»
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Ср дек 28, 7:17 PM MSK  CODING

Перенесли на 15 минут
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    кекеке. У нас разные понятия о MSK :-)
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      у нас белорусское MSK...
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У вас с ареной разные понятия о мск)
      а вообще даже не с ареной, а с java 1.6.0_29)
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У тебя неправильное. Твое - MSD.
      • »
        »
        »
        »
        13 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

        Хм. Ты меня смутил своим линком. С другой стороны, я там же нашёл, что MSK теперь вообще deprecated - http://www.timeanddate.com/library/abbreviations/timezones/eu/msk.html

        Так что не у одного меня неправильное)

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

Сдвинули на 8:17 по Москве.

Надеюсь, room assignment останется прежним.

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

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

»
13 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится
Каким прекрасным SRMом завершился этот год, похоже ребята на топкодере уже вовсю празднуют.
»
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
заманчивое начало)
»
13 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится
создаю анонимный фонд засравших раунд! присоединяйтесь!
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    +1.
    Вот бы ещё ничего не упало.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    +1
    Как я обожаю нашего СТАБИЛЬНОГО провайдера  byfly. Стабильно падает в конце раунда. Еще и модем huawei(оправдал марку). Хорошо бы еще первая и вторая зашла.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      хорошо, что есть чему падать.... я вот КАЧЕСТВЕННО :( засрал...
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      У меня byfly редко тупит...тупит скорее wi-fi в ихнем модеме.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    я засрал даже первую задачу(
  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Я присоединяюсь, фонд перестает быть анонимным.

    Первый раз в жизни написал вторую, зато прогнал, как и многие, в первой, и еще -25 словил.
    А вторая может запросто упасть, локально 1.3 сек работает не упала, фейл не эпичный

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

Вот это мясо. Я по B в своём духе написал самое сложное, что только может прийти в голову. Динамика за 2(n / 2) * n3 с пятью оптимайзами тащит :-)
В результате угрохал время контеста куда-то в задни^W чёрную дыру.

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Как ты там по-человечески хранил 250?
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Таки подозреваю, что имелось в виду 2n / 2, нэ?
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        2n / 2· n3 - это вполне нормальное решение, разве нет? Я писал квадрат, но по моим оценкам куб без оптимизаций прекрасно должен заходить.
        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Да, действительно n / 2. Прошу прощения.
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Ну как сказать...
            40 * 20 * 20 * 2^20 * (лонг лонги повелевае!1) = полтора миллиарда операций с лонг лонгами. Я это очень долго и со скрипом впихивал.
        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Бр, куб без оптимизаций - это ж дофигищи миллиардов?
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Может, я что-то очевидное просто за оптимизации не считаю. Ту же проверку на количество единичек в маске я поставил автоматом, а не на этапе пропихивания. Поэтому и думал, что мой куб пройдет.
            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Вань, ты демон. У меня квадрат не работал никак. Хотя и не прооптимизированный.
              • »
                »
                »
                »
                »
                »
                »
                »
                13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Хм. Мне кажется, что я вогнал аж куб. Скажите кто макстесты?
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Мне было все равно для решения. Я брал случайный на 40.
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  У меня везде работает не более чем за 0.6 sec.
                  У меня критичный макстест - когда нулей и единиц по 20 и они разбросаны по строке.
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Точно на тесте из всех о нормально проходит? Однако.. У меня решение за 2N * N - перебор битмасок и запоминание в сеты хешей несовпадающих кусков строки - и на макстесте это было 0.4.
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Точно проходит. За O(n3) :-)
                  У меня есть отсечение, которое проверяет, что очередная маска по количеству нулей и единиц подходит исходной строке. А на таком тесте единственная подходящая маска - это в которой все нули.
              • »
                »
                »
                »
                »
                »
                »
                »
                13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Я запустил на двух неслучайных макстестах и одном случайном. Максимальное время - 1.5. Может, и свалится, не знаю, хотя от теста там вроде бы мало что зависит.
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Прошел.
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  13 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Мой куб тоже. А первая - упала :-( В результате я последний из ненулевых в комнате со второй задачей.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Во-первых, не 50 а 40. Во-вторых - я опечатался, конечно n/2 в показателе.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      240 количество элементов 40
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Товарищи красные, а правильно ли такое решение 500?

    Возьмем первые n/2 символов, далее для каждой маски:
      Найдем начала строчек a и b, которые войдут в x и y.
      Пусть для определенности a длиннее b. Тогда если a[1..blen] == b[1..blen], обновим в мапе, сколько раз встречается строчка a[blen+1..alen].

    Потом проделаем почти такую же операцию для вторых n/2 символов и второй мапы. Только там надо кое-что реверсить.

    Далее пройдемся по всем строкам из первой мапы и попробуем найти их во второй. Если получилось, прибавим к ответу m1[s]*m2[s].

    Еще, конечно, строки можно делать числами, а мапы - массивами (последнее я не успел). Получается за O(n * 2^(n/2))
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Я так примерно делал.

      Со строками локально работало порядка 8 секунд на 'o' x 40, переделал на маски - в арене работало 1.5 секунды.

      И там не просто посчитать сколько раз такая строка была, а надо еще вроде сохранять какая именно строка была длинее и потом sum( m1[<num, s>] * m2[<1 - num, s>]. И отдельно учесть пустые строки.

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

        И там не просто посчитать сколько раз такая строка была, а надо еще вроде сохранять какая именно строка была длинее и потом sum( m1[<num, s>] * m2[<1 - num, s>]. И отдельно учесть пустые строки.

        Да, это я учел. У меня локально работает 1.3 сек, и почему-то кажется, что мой Core 2 Duo E6600 четырехлетней давности побыстрее их компов

        UPD: Зашло. Жаль, с 250 протупил

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Обычный вопрос - как делается хард? Я на претесты итеративный метод впихнул (на каждом шаге храним несколько лучших массивов, как только мы не можем сделать следующий шаг, мы нашли ответ), но он свалится хотя бы по тайм-лимиту.
  • »
    »
    13 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

    Есть некоторое решение, не уверен что правильное.


    1. Нам надо найти набор xi, yi такой что 
    a) 
    b)
    c)
    d) максимальна. 

    2. Ответ не превосходит 2000.
    3. При ответе больше 40 можно делать бинпоиск, так как второе условие выполнено автоматически
    4. Перебрали ответ до 40 и бинпоиск дальше.
    5. При фиксированном ответе какая-то очевидная динамика нужна.

    UPD: Судя по всему это лажа. Буду рад если кто-то объяснит где.
    UPD2: А нет не лажа - просто ТЛ.
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +19 Проголосовать: не нравится

      не понял пункт b, честно говоря

      UPD: у меня не прошла 1000, поэтому разбора от меня не будет.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Видимо, основное ограничение — P1, P2 >= 50.

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

    Идея решения у меня такая: смотрим на цвета по очереди и для каждого решаем, сколько раз отнять от него P1 и сколько раз отнять P2. Считаем динамикой ответ для состояний (количество просмотренных цветов, сколько у нас свободных P1-ок, сколько у нас свободных P2-ек).
  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Я делал динамику f(i, mx, opened) -- максимальное количество раз, которое мы можем отнять P2, если мы отняли P1 ровно opened раз, максимальная сумма количества отниманий P1 и P2 для одной коробки равна mx, и всего мы обработали i коробок.


    Легко видеть, что если f(n, mx, opened) ≥ opened, а также mx ≤ opened, то ответ opened * (P1 + P2) возможен, иначе -- нет. Параметр mx нам нужен для того, чтобы мы не попытались отнять P1 и прибавить P2 к одной коробке за одно действие. Осталось заметить, что mx ≤ 40, причем если opened > 40, то нам уже не важно, чему равен mx. Значит, мы mx можем форсированно ставить 0 при opened > 40.

    Судя по резам на форуме, это проходит.
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кто как вторую решал?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Переберем все маски размера 2n / 2. Динамика по длине маски и длине исходной строки.


    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Блин, вот я кривой. Оказывается моя динамика - не кубическая, а квадратичная. Надо было догадаться, что нафиг не нужно дополнительно хранить, где лежит задний из двух указателей на концы подпоследовательностей, которые мы уже набрали.
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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


      2 задачи, 2 ресабмита, 2 неудачных челленджа.

      Update: у Гены без двух последних оптимизаций проходит.
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну про "проходит" пока с уверенностью сказать нельзя, хотя мало кто в этом сомневается, я думаю :)
        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Я его пробовал на макстесте ломать)
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится +8 Проголосовать: не нравится
            Наивный человек...
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Если тот, кто пробует ломать Петю, в следующей жизни будет индусом, то кем будет тот, кто пробует ломать Гену?
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Надо еще отсечение сделать, чтобы кол-во x и o в маске совпадало. Тогда получается не 2n/2. А в худшем случае
      • »
        »
        »
        »
        13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        я делала даже C(18, 9) — первый и последний фиксированы, отсечение по нулям в слое динамики и по кол-ву, как у Вас. На макстесте как-то быстро работало, надеюсь по wa не свалится — не особо проверяла свой код

        upd: ня, прошло

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

    Можно всунуть пересчитывание динамики в перебор маски так чтобы было 2n· n а не на n2. Работает 1,2 стабильно на 40.

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

    один я решал meet-in-the-middle?


    Разбиваем строку на две, в каждой части перебираем за 220 что отойдет в первую последовательность, что во вторую. Сохраняем состояния (len1, len2, mask), что означает, что в первая последовательность уже длиной len1, вторая длиной len2, а хвост длиной |len1 - len2| представимо маской mask. Перед тем, как сохранить это состояние нужно проверить, что у последовательностей равный префикс длиной min(len1, len2).

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

    Асимптотика 20 * 220 - очень быстро.
    Годится?
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Тоже так же решал, только изначально хранил не маску, а строки и это работало долго, когда на маски переписал стало норм.
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        делал все со строками, сравнивал, удалял, брал подстроки - работало локально 2.5 сек, я не рискнул заслать, пришлось переписывать на побыстрее.

        теперь локально работает 0.7 примерно
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Очень похоже на то, что выше описал dalex.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      И я так делал, на макстесте ~0.2c работает.
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

      Я делал тоже meet-in-the-middle. Достаточно заметить, что если в левой половине у нас маски (A, B) для синих и красных, а во второй (X, Y), то должно выполняться:

      A· 2n / 2 -  numberOfBlue  + X = B· 2n / 2 - numberOfRed + Y, что эквивалентно
      A· 2n / 2 -  numberOfBlue  - B· 2n / 2 -  numberOfRed  = Y - X.
      А значит, можно просто сохранить эти разности и каждый раз когда мы во второй половине получили разность, смотреть сколько таких же разностей было в первой половине.
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Вроде делал абсолютно также, но не зашло. Баг в реализации, или, может, есть какие-то тонкие моменты в таком решении?
        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится +5 Проголосовать: не нравится
          А, да, точно. Я еще в маски разностей добавлял информацию о разности длин красных и синих посдедовательностей. Т.е. просто брал эту разность, умножал на 2 в большой степени и ксорил с тем что вышло. Потому что может выйти что длины последовательностей не совпадут.
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
            Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

            У меня был N/2+1 массив масок, в, к примеру, left[i] хранятся разности, у которых ровно i элементов принадлежат красной поcледовательности. Сливаю массивы left[i] и right[n/2 - i] для всех i. Вроде должно работать.

            UPD: Разобрался. Глупая ошибка в реализации - сравнивал Long между собой оператором ==, а не .equals(), как следует.

            UPD2: При том, что интересно, сэмплы проходили прекрасно, ибо для маленьких значений Long все объекты закэшированы, и прекрасно сравниваются через ==. Обидно.

            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится +5 Проголосовать: не нравится
              Странно, вроде бы багов не вижу. Но тест на котором упало не выглядит сильно тяжелым, особенно если убрать несколько крестиков с обоих концов, чтобы уменьшить его размер. Можно и подебажить :)
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Колян я точно также делал. Написал где-то на 300. Потом решил потестить в арене увидел что у меня не укладывается в памяти 81 метр вместо 64. Сделал 2 ресубмита в итоге печальный результат. А работало у меня очень быстро я очень нахаченно сразу написал
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
как можно решить С Div2 не перебором с отсечением по времени?
  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Я просто шагал с шагом 0.01 и считал максимальное количество для текущего времени.

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Скорее всего тернарным поиском по времени =)
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Переберем все возможные времена, при которых расстояние между некоторыми двумя москитами равно 2R. Место взрыва - средина между ними. Также учтем время T = 0. Вроде бы должно пройти. 
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      зачем минусовать правильное решение? (исправил глупую ошибку в реализации зашло в дорешивании)
  • »
    »
    13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится +1 Проголосовать: не нравится

    Я решал так:


    Пусть [l,r] - отрезок, который накроет бомба. Попробуем рассмотреть каждую из точек в качестве левой границы. Теперь пробежимся по всем остальным точкам и определим момент времени, когда эта точка войдёт в этот отрезок и выйдет из него. Время входа и выхода толкаем в вектор, сохраняя флаг того, вход это или выход, после чего его сортируем. Идём по вектору и пользуемся принципом стека: когда встречаем момент времени, в который точка входит в отрезок, - увеличиваем счетчик, а когда выходит - уменьшаем. Тут требуется определённая эпсилон-кунг-фу, я не придумал как её избежать. максимум из всех значений счетчика и будет ответом. асимптотика - O(n2*logN)

    UPD. Упало. Эпсилон-магия мне неподвластна =(
    UPD2. Тупая бага с целочисленным делением. стыдно. Но в целом решение верно.
    • »
      »
      »
      13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

       Тут требуется определённая эпсилон-кунг-фу, я не придумал как её избежать.

      Избежать очень просто: хранить вместо double два int'а - числитель и знаменатель.

      Кроме того, кажется, что можно просто из левых концов всех отрезков повычитать эпсилон.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Записываем моменты времени, когда 2 москита стоят в одной точке.
    Так как все скорости разные, считались такие точки очень просто.
    Добавляем момент времени 0, и для каждого момента считаем сколько максимально москитов находятся на отрезке длиной 2R.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      В точности такое же решение у меня не прошло один из финальных тестов... Там видимо нужно было шаманство с эпсилонами?
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      и это решение прошло систесты? - оно же не правильное, или я чего-то не понимаю...
      • »
        »
        »
        »
        13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну не знаю.
        Сам не ожидал.
        Сел писать первое решение, пришедшее в голову, так как инет отрубился где-то на 30той минуте, потом созванивался с провайдером, ...
        Прошло все тесты.
        Можете посмотреть код тут: http://pastebin.com/9RYSsr25

        • »
          »
          »
          »
          »
          13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ну, интуитивно кажется вроде бы, что идея решения как раз верная.

          P.S. Епсилон таки присутствует. Абсолютно такой же код без него получает Failed System Tests. Ну когда же я научусь в правильные места эти эпсилоны засовывать... =(
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            После нескольких контестов, где я сравнивал даблы без епсилона и нескольких не очень ласковых поглаживаний моей головы руками напарников, уже не забываю писать нормальное сравнение)

          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            А ты проверял в момент времени 0?
            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Да, без этой проверки он бы даже один из стандартных не проходил (там где в разные стороны движутся два москита).
              • »
                »
                »
                »
                »
                »
                »
                »
                13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                У очень многих уже видел такой вердикт:

                Test Arguments
                Expected ResultsSuccess
                {-70, 79, 0, -12}, {90, -99, 0, 18}, 14FAILED - Result: 3
          • »
            »
            »
            »
            »
            »
            13 лет назад, # ^ |
              Проголосовать: нравится +1 Проголосовать: не нравится
            a < b   ->   a < b-eps
            a <= b   ->   a < b+eps
            a == b   ->   abs(a-b) < eps
            a >= b   ->   a+eps > b
            a > b   ->   a-eps > b

            Главное - считаем, что числа равны, если abs(a-b)<eps. Если есть сомнения, надо на бумажке нарисовать, станет все ясно.
            • »
              »
              »
              »
              »
              »
              »
              13 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              хм, спасибо. Сейчас вроде стало понятнее откуда берутся эпсилоны в сравнениях и с каким знаком их нужно ставить. Надеюсь, этот SRM послужит мне уроком =)
»
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
когда систесты закончатся?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Мне интереснее - когда они начнутся?
  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    вопрос в том, когда они начнутся...

    UPD: опередили...

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

    Когда систесты начнутся?

    upd: Ого, видишь, этот вопрос всех куда больше интересует!

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
В арену только у меня не логинится?
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А каким образом сдают 250p задачу на 250 поинтов? И вообще любую другую на полное кол-во баллов?
Читы вроде чтения задачи с одного акка?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    да
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Админы на это как-то реагируют или пофигу?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да. Либо чужой код. С такими после контеста быстро разбираются, они ни на что не влияют.
»
13 лет назад, # |
  Проголосовать: нравится +55 Проголосовать: не нравится
Может из-за того что близится Новый Год всё так, но хочу сказать что последние раунды на кф проходят гораздо лучше чем на тс... нет задержек, тестируется по окончанию... рекомендую кф табличку со словом "beta" подарить тс, может она им понадобиться...
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    На мой взгляд, вы перегибаете палку - Bad Gateway в последние минуты 99-го матча я бы не назвал "гораздо лучше чем на тс".
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится -20 Проголосовать: не нравится
      Кстати, да, надо надеяться, что это было лишь из-за слова beta в названии) Если в новом году это будет повторяться - будет плохо.
    • »
      »
      »
      13 лет назад, # ^ |
        Проголосовать: нравится +25 Проголосовать: не нравится
      извините, такого не застал, был в дебаге...
»
13 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Найс. +100, теперь красный.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +11 Проголосовать: не нравится
    каким новый год встретишь, таким его и проведёшь, поздравляю ;)

    а у меня теперь 2198... =/
»
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Прощай, второй дивизион! =)
»
13 лет назад, # |
Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

Ура! После 99-го своего SRMa я стал наконец-то красным!!!

  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Главное не стать после юбилейного сотого обратно желтым.
»
13 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
Бывают SRM-ы, за которые мне очень стыдно.