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

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

Hi,

Codeforces Round #282 will be held at 13th of December, 19:30 MSK. Please don't note anything since the time is the usual time of contests.

The round is prepared by FarbodY, Haghani and Me(matrix).

We'd like to thank Zlobober who helped us a LOT for preparing the problems, MikeMirzayanov for the Polygon and Codeforces platforms and Delinur for helping us in preparing statements and translating them.

Our special thanks goes to mruxim for testing the round.

The problems will be sorted according to the estimated order of difficulty according to our opinion but we strongly recommend you to read all of the problems.

As always the update regarding score distribution will be posted just before the round starts. :)

UPD: It was written that contest starts at 20:00 MSK. it was a mistake and is fixed now. The round starts at usual time 19:30 MSK.

UPD2: We also thank niyaznigmatul for testing our round.

UPD3: Score distribution:

Div1: 500-1000-1750-1750-2500

Div2: 500-1000-1500-2000-2750

As you might have noticed, the scores can now be multiples of 250 as well. Let's thank Codeforces team for adding this feature!

Good luck and Have fun!

UPD4: Congratulations to the winners of both divisions:

Div1:

  1. tourist
  2. winger
  3. sankear
  4. uwi
  5. Egor

Div2:

  1. Ginger88895
  2. pwild
  3. arthurpd
  4. konmaj
  5. ezkatka

The editorial for all problems except D and E Div1 are ready and can be found here. It'll be completed soon.

We thank you all for participating and hope you had a good time.

UPD5: The editorial is now complete and can be found here.

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

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

wow :) iranian contest I love them :)

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

matrix your graph is awesome and very motivated

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

Our special thanks goes to mruxim for skipping this round just because we needed a tester

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

"Please don't note anything since the time is the usual time of contests."

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

Happy coding

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

hope to see a nice problem-set and rating growth :)

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

This will be excellent preparation for the USACO December Contest.

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

Zlobober has a great contribution in almost every contest. Thanks bro.. :)

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

Have fun and good luck to all of you.

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

Codeforces really should think about some additional promotion, today I've found topcoder easter egg in locker room

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

Time for dreamoon_love_AA :D

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

It will be a good contest ...

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

Hope for much [pure] math

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

It will be a great contest.

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

So happy for div.1 contest)))))

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

At last after 10 days !!!

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

Врываюсь в желтые сегодня короче)))

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

hope candidate master for every expert

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

Wanna be Blue.... Gonna be White... -_-

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

it is my first time for div.1.....

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

I just want get a purple handle in this round~

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

I hope this contest will bring me from unhappiness...... I even suspect whether coding is suitable for me...

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

    Well...I didn't got a purple handle, en.....when you tired or lack of confidence,look at me ~, many times I tried my best but got a bad result, but I firmly believe that one day, I can become an excellent coder, not only in ACM. A gold medal is not necessary to prove yourself.

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

Don't you think it is a good idea to announce the scoring right now? Because of I think the website will be down (hope not) in a few minutes and you won't be able to announce it just before the contest! :D It would be after the start of the contest!

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

1750 points. O_O Rly?

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

"As you might have noticed, the scores can now be multiples of 250 as well. Let's thank Codeforces team for adding this feature!" Sounds sarcastic

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

CF #282

We hack as we could

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

Problems A, B and C are easy; but problems D and E are difficult ! (in Div. 2)
There isn't any normal problem :D

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

Good Bye div1)

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

correct score distribution (div. 1): 500 — 1500 — 2500 — 2500 — over9000

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

Как решать C?

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

thanks a lot for nice problem :)

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

last 10 minutes, server was down. I could hack 10+ solutions but...

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

Woah, wasn't able submit my solution to A because codeforces wouldn't load. :(

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

A div1 / C div2:

(#(
Answer: -1
WA: 2
»
12 лет назад, скрыть # |
← Rev. 7  
Проголосовать: нравится +26 Проголосовать: не нравится

fail of the year

A: forgot if(b[i] < 0) ans is -1.
B: forgot if there is no S in T ans is 0.

added two ifs and got accepteds :(

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

What's the hacking test case for Div2A?

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

Server Problem,vary painful.

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

Я надеюсь, что "невозможно отправить в последние 5 минут контеста" = "раунд нерейтинговый" ? Под невозможно я имею ввиду "совсем невозможно" — увидеть не страницу "извините, всё плохо", так и не удалось.

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

What's wrong with test 6 in D, my stress test doesn't reveal any problems =(

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

Преступление и наказание (одновременно взломал сам и взломали мою задачу)

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

Last 10 minutes :(

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

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

    Your avatar fits well to that pic :P.

    For me it was best round ever with regard to number of hacks (I got +6/-1) :). "(#(" ftw :D! As well as best round ever with regard to place before systests (8th), I hope it will stay that way after them :P.

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

For div2, a lot of solutions for B had bad complexity O(a) — I managed to submit only two hacks though, due to the server being down for the final fifteen minutes.

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

Sadly, this time too, Codeforces went down in the last ten minutes. solved problem C but couldn't submit :(

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

please improve the server or limit the contestants number !!!!

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

Any idea about how to solve Div-1 B?

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

    I found all occurrences of t in s using KMP, then did DP on the the position of the last substring you take.

    So dp[k] would be the number of valid substring selections where none of the substrings have any chars after the kth char, and the kth char is within one of the selected substrings. Calculating dp[k+1] would depend on whether a pattern of t ended at position k+1 or not.

    I'm not sure if this is right, but it passed pretests.

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

      I did it in the same way — probably a useful structure is >> int last_before[i] << , indicating where is the last occurence of t in s, that ends before i. Then the recurrence can be sumarized to:

      dp[i+1]=dp[i]+sumdp[last_before[i+1]]

      sumdp[i+1]=sumdp[i]+dp[i+1]

      (with edge cases and similar stuff added, of course)

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

    Dynamic programming . For each index i in array, calculate the number of ways dp[i] such that b_k is i. And then sum of all these ways.

    To do this , first find out all the occurences of pattern in text using KMP. Then recursion to calculate dp[i] for i =1 to n(size of text) would be

    dp[i] = sum( j = 0 to pat_start[i] , sum(t = 0 to j, dp[t] ) ); dp[0] = 1;

    where pat_start[i] = largest index p such that Substring[p,i] contains given pattern.

    Now this dp might seem like O(n^2) but by maintaining some additional summations, we can do it in O(n)

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

Good bye, Blue. Welcome Green, again.

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

Я один столкнулся с тем, что, пытаясь взломать, при открытии чужого решения, открывается окно с посылками, само решение не открывается, ссылку с решением, на которую можно нажать тоже нет, в итоге взламывать невозможно? Так было вначале, потом удалось таки один раз взломать, потом тоже самое до конца контеста. Поведение одно и тоже на Ubuntu (Chrome и FF) и на Win8 (Chrome).

Я конечно и сам залажал контест, но невозможность взламывать тоже как-то выбила из колеи.

Ответы жюри:

"У вас должен быть установлен Flash. Некоторые плагины могут резать Flash, считая баннером. Попробуйте так же воспользоваться другим браузером или очистить кэш/cookies."

"В итоге ведь получилось произвести взлом? Остальные участники не жалуются, проблема где-то на вашей стороне."

"Мы не можем ничем помочь."

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

    У меня каждый второй раз открывалось только окно для взлома, без решения. Firefox 34, Win7.
    З.Ы. Это нормально, что я не могу переключить у себя галочку "по-английски" на "по-русски", отвечая на этот комментарий?

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

    да, было такое. и ещё за 10 минут удалось взглянуть только на 4 решения.

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

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

It's midnight and I am facing an usual dilemma: do I go to sleep before the rating update or after? It's always a difficult decision...

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

How to solve C? Tried to implement some DP on a tree, but answer on the 3rd sample was slightly incorrect.

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

why testing is stopped?

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

I solved E, but read it in a wrong way: I thought rectangles could not intersect. I understood I needed a segment tree, but couldn't wrote it in time. Now it's working with stress test. :( I think it made the problem worse. When you've already got the idea, got the formula for d[x][y], then for rectangle it should be ok. I don't see any difference (except the time). It could be very easy to write mathematical problem. I haven't read all the problems but I like all I've seen.)

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

Количество символов '(' должно равнятся количеству символов ')' для каждого i или для всей строки?

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

Interesting question: How can somebody get runtime error on Div2-C??

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

.

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

pretty hard!!! ( And challenging. )

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

Е-шечку никто не решил(

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

You really have to maintain server stability in the last 10 mins

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

Damn, failed on 47th test... Is there any way to download the tests to see what went wrong?

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

vishwacs111, thank you for hacking my C!

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

nice contest got +132 :D:D:D + hacked 5 users second problem in div2:D:D:D

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

У меня была рабочая версия задачи C, которую я не смог послать, потому что последние 10 минут сервер лежал. Оставлять этот контест рейтинговым — свинство.

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

Буду, вероятно, заминусован, но не могу не отметить, что авторы мудаки и задачи у них соответственные. Чем такое придумывать, лучше б вообще ничего не предлагали.

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

    Почему? Мне задачи показались нормальными.

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

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

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

        бебебе

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

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

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

          Тащемта, а что тогда предлагается включать в (тесты — претесты), если не крайние случаи?

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

            У меня всегда находится, на чем упасть решению :D

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

            Конкретно здесь было и КМП и не слишком тривиальная динамика. Т.е. было, на чём свалиться решению, прошедшему претесты. Если так хочется, чтобы участники на чём-нибудь свалились, можно было второй тест не делать тестом из условия. Я уверен, он пообрезал частных случаев поболее, чем -1 по модулю MOD.

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

    И чем же Вам авторы так не угодили?

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

No luck — just skill

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

man i am going down and down and down need to come up

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

what is the difference between

long long ind = lower_bound (x2.begin(), x2.end(),i)-x2.begin(); if(x2[ind]>i){ind = ind-1;}

and

long long ind = upper_bound (x2.begin(), x2.end(),i)-x2.begin(); ind = ind-1;

?

Second one passed,first one didn't. I was trying to find largest element less than/equals to i in vector x2

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

I never understand div 1 B problem statement, could someone explain it?

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

What's worse than both your solutions failing? Your friend dropping to div-2 for 1 point.

1699 Rating! — http://codeforces.me/profile/rsunny rsunny next time macha!

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

This contest was excellent!!!

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

Объясните кто-нибудь почему в Div1C матожидание = 4,465.

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

    Посчитаем вероятность того, что максимум равен какому-то значению.

    Максимум точно не может быть меньше, чем 3.

    Максимум равен 3 в том случае, если первая рекомендация не выполнена (это 0.5) и среди рекомендаций 2, 3, 5 не выполнено хотя бы две, вероятность этого 0.25(1 - 0.8)(1 - 0.9) + (1 - 0.25)0.8(1 - 0.9) + (1 - 0.25)(1 - 0.8)0.9 + (1 - 0.25)(1 - 0.8)(1 - 0.9) = 0.215, итого с вероятностью 0.5·0.215 = 0.1075 значение максимума равно 3.

    Максимум равен 5 в том случае, если среди рекомендаций 1, 2, 3 и 5 выполнено ровно 3: (1 - 0.5)·0.25·0.8·0.9 + 0.5·(1 - 0.25)·0.8·0.9 + 0.5·0.25·(1 - 0.8)·0.9 + 0.5·0.25·0.8·(1 - 0.9) = 0.3925.

    Максимум равен 6 в том случае, если выполнена каждая из рекомендаций 1, 2, 3, 5: вероятность этого равна 0.5 × 0.25 × 0.8 × 0.9 = 0.09.

    В остальных случаях максимум равен 4: это 1 - 0.1075 - 0.3925 - 0.09 = 0.41.

    Считаем матожидание: 3·0.1075 + 4·0.41 + 5·0.3925 + 6·0.09 = 4.465.

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

dp'licious div 1 contest!

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

Couldn't code problem d in time and my a was buggy. I almost fell back to div2 LOL

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

What did just happen here? AC: 9122599 WA1: 9122592

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

http://codeforces.me/contest/494/submission/9117612

For some final tests, I think this should get WA.

Output

999999958.3334586600

Answer

1000000003.315735409

Checker comment

ok found '999999958.3334587', expected '1000000003.3157355', error '0.0000000'

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

judging system of codeforces is quite bad. Because in the contest time judges should provide all input/output testcases. When a coder gets Pretest Passed, he moves to other problem, but after contest he sometimes notice that the solution was wrong. If in the contest time he gets Wrong Answer he could get Accepted.

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

Finally I reached EXPERT!!! :D

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

tourist 's 100th round!

Took off 2 zeros for rank!

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

Hamed and Malek two familiar people for inoi people

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

Iran contest is too hard..555555