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

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

Привет, Codeforces!

26 марта 2015 года в 19:30 MSK состоится очередной раунд Codeforces #297 для участников из второго дивизиона. Традиционно, участники из первого дивизиона приглашаются поучаствовать в соревновании вне конкурса.

Это мой уже третий Codeforces раунд, надеюсь, я вам еще не сильно надоел.

Хотелось бы сказать большое спасибо Максиму Ахмедову (Zlobober) за помощь в подготовке задач, Марии Беловой (Delinur) за перевод условий на английский, Михаилу Мирзаянову (MikeMirzayanov) за замечательные системы Codeforces и Polygon и за идеи некоторых задач, а также моим старинным друзьям Павлу Холкину (HolkinPV), Илье Лось (IlyaLos), Виталию Кудасову (kuviman) и Артуру Свечникову (ikar) за прорешивание задач и вычитывание условий.

Участникам будет предложено пять задач и два часа на их решение. Разбалловка будет объявлена позднее.

UPD Стоимость задач будет плавной динамической с шагом в 250 баллов. Подробнее об этом вы можете прочитать здесь. Задачи будут расположены в порядке предполагаемого возрастания сложности.

UPD2 Соревнование завершено! Спасибо всем кто участвовал!

UPD3 Разбор уже ждет вас здесь.

UPD4 Поздравляем победителей!

  1. cikofte
  2. fcspartakm_2
  3. stealife
  4. GITLER228
  5. alpq654321
  • Проголосовать: нравится
  • +175
  • Проголосовать: не нравится

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

hello, i have decided that i'll downvote every comment in this post for fun :)

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

Your last contest had nice problems.

Thank you for creating another contest.

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

I think you mean "translating into English"? :)

As I see that you are from Russia and the google translate of your blog in Russian gives "translating into English" too

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -74 Проголосовать: не нравится

The comment is hidden because of too negative feedback, click here to view it :))

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится -11 Проголосовать: не нравится

It was good

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

Why does the registration close in less than 2 hours?

Edit: Fixed :)

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

Is the registration time correct?? It will finish in the next hour

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

:D .

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

Thanks for the contest . Hopefully it will be a great learning expirience for everybody.

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

to div1 users: please dont create new accounts :||

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

Scoring distribution?

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

Codeforces Round #297 (Div. 2) 297 which is divisible by 9; 2+9+7=18=1+8=9 which is also divisible by 9; 2+7=9 && 9 which is also div by 9; Have any problem of divisible by 9? Best of luck.

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

I have a doubt. If 2500 people out of 3000 solve A , 2400 solve B , then how many points will be allocated for A and B (lets assume no of Solutions for C,D,E is < B)

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

Вечером после контеста Илье стало скучно, и он очень захотел помаксимизировать. смотреть бесплатно и без смс

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

Классный раунд!
Как решать D?

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

    Известная задача, один из вариантов решения — вырезать "уголки". Когда все плохо? Когда есть клетка со стеной, для которой, например, свободны одновременно клетки справа, сверху и сверху-справа (аналогично для других 3 направлений). Забросим все такие клетки в сет. Пока в сете что-то есть — берем оттуда клетку, чистим ее и проверяем, не нужно ли теперь добавить в сет кого-то из ее соседей.

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

      Кто-нибудь сдал что-то не похожее на это?

      Можно ли сдать что-то вроде этого: для каждой компоненты-комнаты найдем xmin, xmax, ymin, ymax. Расширим эту компоненту до соответствующего прямоугольника. Потом объединим все эти прямоугольники (соответственно опять расширив до прямоугольников их объединения). То что получится в конце и будет ответом.

      У меня такое решение дает WA. Подозреваю, что проблема в том, как я обрабатываю касающиеся прямоугольники (их нужно объединить, если они касаются не уголком).

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

        А не слишком много итераций этого процесса потребуется?

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

          Возможно. Наверное на этом и построен претест 12. Особенно кажется много проблем доставляют именно касающиеся прямоугольники. Я не знаю как их хорошо обрабатывать, без них, кажется, можно просто сканлайном с dsu.

          Я и спросил чтобы узнать, может кто-то знает или кто-то сдал :)

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

          UPD: Нет, это неправда.

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

        Я так начинал. Найти прямоугольник, при заливке прямоугольника проверять, не касается ли он '.'. Если касается — заполнить соседнюю строчку/столбец с такой же проверкой. Потом я понял, что искать прямоугольник необязательно, можно начинать с одной клетки '.'. Сабмишен

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

        Я начинал это писать, но потом понял, что нужно будет много раз объединять на таком тесте:

        .*.*.*.*.*.*.*.
        ..*.*.*.*.*.*.*
        

        Клетки площади один сами по себе представляют прямоугольники и их расширять не нужно. Но штуку слева нужно расширить сначала до площади 4 (и тогда она склеится с одиночной клеткой и будет площадь 5), потом до площади 6, ну и так далее. Если делать объединения в стиле "пройдёмся по всему полю и пообъединяем то что можно", то понадобится линейное от длины стороны количество итераций. Возможно, можно объединять более "умно".

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

          А что, если искать эти xmin, xmax, ymin, ymax поиском в ширину, только с условием того, что можно идти по-диагонали?

          Так получится за один раз обнаружить всю комнату полностью в вашем примере.

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

            Но ведь не всегда можно идти по диагонали, например:

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

              У меня идейно решение именно такое, но тест типо вашего пройдёт вообще безо всяких трудностей. Я на каждой итерации цикла не расширяю прямоугольники, а удаляю стены, которые мешают какой-либо комнате появиться.

              Так и не смог придумать конкретный тест, где это работат медленно.

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

                Работает медленно это тогда, когда в списке wall есть много стен, которые не мешают никому, а в конце есть стены, которые кому-то мешают, и удаление такой стены делает мало других стен удаляемыми. Решение будет работать за O((nm)2) Например:
                1998 строк, состоящих из 2000 символов *
                2 строки такого вида, как я показал выше.

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

        Я проходил и заливал комнаты различными цифрами(различными для каждой комнаты) потом для каждой цифры находил x_min, x_max, y_min, y_max и вырезал что внутри.

        Получал TL на 12 тесте.(Python)

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

Thanks fcspartakm

Nice contest :)

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

The scores of problems was so low that hacking was important than solving problems...

Why????!!!??? :(

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

What is solution to problem C...it seems like simple task but I cannot pass Pretest 4

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

I had a strange problem during the contest, two times my default compilator changed from GNU C++ to GNU C (and I get two compilation errors :)). Did someone else noticed such thing too?

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

Great contest! Thank you fcspartakm!

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

Could somebody give me a hint of how to approach D and E?

Edit: Nevermind, the editorial was posted surprisingly quick.

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

I see the most hacks are in problem B.

Can anyone tell us what's the hacking test case ?

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

Спасибо за оперативный разбор!

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

Pff, I'm so sad because I didn't figure out E ... :(

Update: Nooo, my C is wrong :( :( :(

Those hacks saved my a*s :D

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

Why this test generator is wrong ? the only explanation for that is 1 space in the end of file, because this works well.

Why 1 space generates an invalid input?

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

    Because it is an invalid input. Somebody may read using fread with a buffer(sometimes I do so) and when you see the size of the buffer, then you can generate a test with a lot of spaces in order to make his/her buffer overflow and hack him/her.

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

Подскажите, что нужно было делать в задаче D?

Валится на 12 тесте, и потому даже нет возможности узнать, что конкретно работает не так...

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

Problem C was so ill framed in English :/

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

791 ACs on C. Then why would this problem have 1000 points? Isn't that the general solve count for problem C in a typical CF round? -___-

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

Поздравлять людей, зарегавшихся 4 часа назад... Поэтому и читерят.

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

WA during the contest : 10474140 AC after the contest with the same code : 10476119 Just put a #include in a comment Any explanation ?

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

Was the round Unrated? if not, when will the ratings be updated??

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

in problem C in the test case 4: 8 5 3 3 3 3 4 4 4 how correct ans is 25?

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

On C it wasn't particularly clear that multiple rectangles are being created... "Ilya decided to make a rectangle from the sticks" implies at least initially that there is only one rectangle. (Or maybe I just need to read more carefully)

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

D was one of the most interesting problems i have ever seen. Too bad i took wa on #12 :(

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

Thanks who send to B with O(n^2) complexity

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

can anyone help me why this solution got WRONG ANSWER http://paste.ubuntu.com/10685457/

UPD : it's okay i got it now!!

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

Can anyone tell me why my C solution was skipped whereas the same code got accepted after the contest?

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

Guys, did I solve one or two problems?

One

I meant two

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

How Silly were the pretests on C,,,,, Actually, how silly i am :( Notice the differences between these two solutions- http://codeforces.me/contest/525/submission/10464785 and submission:http://codeforces.me/contest/525/submission/10477043 . Anyway, thanks fcspartakm for nice contest :)

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

I'm afraid to seem impatient but when ratings will update?

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

is the contest unrated??

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

В Задаче Е у меня код локально проходит претест 1, но в "запуске" здесь (как и на претесте) почему-то неправильно считывает массив a и соответственно выдает WA. Никто не знает, с чем это может быть связано?

P.S.: я понимаю, что решение словило бы TL

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

Would you mind putting " UPDX Contestants' rate changed" in the end of the post, when new rates apply?

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

I'm waiting for ratings...

Do they come tonight????

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

I am staying up all night just for looking at the rating update. When will it be updated???

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

I cannot see the problems in the "PROBLEMSET".

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

nagetive contribution makes me upset Ծ‸Ծ

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

This is the code used in Winner's C: http://codeforces.me/contest/525/submission/10463905 This is the code used in enesoncu's solution to another problem: http://codeforces.me/contest/436/submission/10422970

Doesn't it look very similar!

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

Can you tell me what is wrong with hacking using generator? I tried three times during this contest, but i have got Validator 'val.exe' returns exit code 3 [FAIL Expected EOLN (stdin)]

Probably this is connected with the fact that i have used std::endl? How to do it correctly? Should I use "\n" next time? Because I really could have done at least 2 hacks!

Thank you

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

Can you help me?

http://codeforces.me/contest/525/hacks/143414/test

Judge return this:

Validator 'val.exe' returns exit code 3 [FAIL Token parameter [name=s] equals to "/********...correspond to pattern "[a-z]{2,200000}" (stdin)]

I couldn't find any problems...

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

Thanks for interesting problems and weak pretests. There were nice opportunities to hack.

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

Чё за бред блин duck

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

:)

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

Could somebody please help me to interpret the following wrong answer on problem D:

Test: #12, time: 717 ms., memory: 4404 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER expected: '***..*......*...****.*****.*.....**.*******.******.*..***.***.**', found: '***..*......*...****.*****.*.....**.*******.******.*..***.***.**'

Both strings are identical, but still in some way the validation system seems not to like my string. Thanks in advance.