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

Автор MikeMirzayanov, история, 10 лет назад, По-русски

И снова здравствуйте!

Уже сегодня 5-го мая в 19:05 начнется очередной раунд Codeforces. Да-да, обратите внимание на нестандартное время старта.

Я воспользовался своим служебным положением и теперь вас ждет чуток экспериментальный раунд с расширенным набором задач. Возможно, опытным участникам (извините, Div 1) он покажется простым. В данном случае был сделан упор на основную целевую аудиторию раунда — в раунде будет много совсем несложных задач, но и даже топ второго дивизиона найдет кое-что интересное. Кроме того, одна из задач будет предложена в двух вариантах — в упрощенном варианте с маленькими ограничениями и в усложненном с ограничениями побольше. Таким образом, если вы сразу сообразите решение для больших ограничений, то можете написать один код на оба варианта.

Авторы задач — это я и fcspartakm. Надеемся, что вам понравятся задачи и будет весело и полезно!

Запланированная разбалловка такова:

  • A: 500
  • B: 750
  • C: 1000
  • D1: 1000
  • D2: 500 (то есть полное решение задачи D оценивается в 1500 баллов)
  • E: 2000
  • F: 2500

Удачи!

UPD: Как указали в комментариях с парой смежных задач D1/D2 есть тонкость со взломами.

  1. Для того, чтобы избежать ситуации, что участник заблокировал задачу D1 и подглядел в своей комнате решение к D2, вы сможете блокировать задачи D1/D2 только парно одновременно и только в том случае, если сдали как D1 так и D2. Иными словами, возможность блокировки D1/D2 появляется после сдачи обеих подзадач, блокировка осуществляется одновременно по обеим подзадачам.

  2. Для того, чтобы избежать двойного вознаграждения за взлом как D1, так и D2 у одного и того же участника, участник A в случае успешного взлома участника B по задаче D1 теряет возможность взламывать B по D2. Аналогично, если участник A успешно взломал участника B по задаче D2, то A теряет возможность взламывать B по D1.

UPD 2: Раунд завершен. Поздравляем победителей. Вот герои сегодняшнего дня.

топ-5 официальных участников:

  1. xlk200
  2. TableEnterer_Lin
  3. cykhhq595
  4. xxxholic
  5. A_Navie_Moer

топ-5 внеконкурсных участников:

  1. anta
  2. -XraY-
  3. Um_nik
  4. halyavin
  5. Enchom

UPD 3: Опубликован разбор задач.

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

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

So is CodeForces trying to move towards larger problem sets for a contest? Cause I think it'd be a lot more fun if there were more problems to try and solve per round.

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

Мда... всему вас, начинающих проблемсеттеров, учить надо... Забыли поблагодарить Михаила Мирзаянова за Codeforces и Poligon.

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

Will it be rated?

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

Классно придумали с задачей D!

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

    О, реально. Почаще бы так :)

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

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

      Мне кажется, стоит сделать, что если человек сдаёт D2 (большой тест), и D1 у него не сдано ещё, то он автоматически получает и по D1 галочку

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

Will contest duration remain the same?

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

If D2 score decrease 8 per minute (as a usual round) . then what will remain after 30 min?! only 250 points?!

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

    I thought that the decrease was dependent on the problems score? If a problem is worth 500, at the very end of the contest it will decrease to be 250 points. In a regular 2-hour contest, it decreases at 2 per minute, but in a 2.5-hour contest it will decrease at 1.67?

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

А правда, что можно сдать d1, заблокировать ее и перебить код нутеллы из твоей комнаты в d2?

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

Also notice that problems are becoming harder and harder as the scoring distribution has also changed.

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

Having a problem with two subproblems in a regular Codeforces round with hacks may be exploited in a following way: suppose there are two coders in the room. One of then solves only D1 and successfully submits it, while second solves both D1 and D2 with the same source code. Then, if first coder locks his code, he is able to read a solution for larger constraints if he opens a solution of D1 by the second guy.

Something has to be tuned here. How about leaving a possibility to hack only for D2?

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

this gonna be Enjoyable , I'm in !

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

this gonna be Enjoyable , I'm in !

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

I have my Exam tomorrow.But this round looks interesting. I'm in!

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

I think this new form---one of the problems will be offered in two versions is very great!The equivalent of i could not finish big data algorithm can also get scores,right?For the beginners like us is really nice!I hope this form will be keep in the next rounds.I will support codeforces forever and i am expect codeforces can launch more good forms like this!Come on,codeforces!!!

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

Partial Marking. This is going to be pretty interesting. :)

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

I wonder why if you hack D1, you can't hack D2. They can be completely different solutions.

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

Rule number 2 is not good ! In case someone submitted same code twice and I hacked one code in 90% of cases it means the second code is also not good. So some other will see it and receive points for second subtask despite he didn't find bug after first chacking.

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

Suppose you hack ones D1 and then they resubmits correct D1 and bad solution for D2.

You should be able to hack him.

You may consider disallowing to hack solutions which were submitted before hack.
But may be it's a good idea to just let people get their 200 points

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

You forgot to thank yourself.

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

В задаче B почему-то отклоняется генератор: Validator 'val.exe' returns exit code 3 [FAIL Expected EOLN (stdin)] вроде проверил всё.

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

Как использовать тип __int128 ? gnu g++ 11 ругается. А еще научите сравнивать произведение чисел с другим числом, если произведение может выйти за long long

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

Объясните пожалуйста первый пример последней задачи, а именно: где там число k, которое равно количеству цифр в числе n?

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

    n=00312 k=5

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

      но ведь Единственное, что помнит Вася, это некоторая непустая подстрока числа n (под подстрокой числа n следует понимать последовательность подряд идущих цифр из числа n). и там 021, следовательно в n должна быть подстрока 021

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

        Магическим образом при передаче этой записи Кате все цифры перемешались произвольным образом

        Тоесть n до перемешивания могло быть 30210 или 30021.

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

Test #11 is Evil

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

well, look at this

Desperation on a whole new level :v

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

What a Binary Search Round! Enjoyed it to the core...

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

Too easy IMO.

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

How to pass test 4 in problem F? Easy problem, but I can't find bug in my code :(

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

how to solve Div2 A?

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

    First of all we are bound to have 2 off days in each week , so first find the number of weeks and multiply it by 2. Next in case total days are not divisible by 7 we need to see if there are any remaining days or not (i.e. total days % 7) Now if there are 1 extra days if we are unlucky it will not be an off day , thus min off day is unchanged , but if we are lucky it will be an off day thus max off day is incremented by 1 , again if there are 2 extra days those 2 may not be off days thus min day is the same , but those two can be off days so max day is incremented again ( i.e. week*2 + 2 ) This logic extends up to extra day = 5 , but if the extra day =6 we are bound to have 1 off day so min day will be incremented then and max off day as before incremented twice ( i.e. week*2 + 2).

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

halyavin used my successful challenge of D2 to identify the wrong solution and got challenge of D1. :)

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

What do you say when you submit a solution and the contest gets over — "Every second counts" Was just a heartbeat away! RIP question F.

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

Interesting

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

Does this happen alot??? But still it was a great round.

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

What do you say when you try to submit and the contest gets over — "Every second counts"

Just a heartbeat away. RIP Question F.

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

Can string k contains 0 digits in last task ?

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

Am I the only one who miss-read E's statement (such that you need to delete just the pair of brackets but not the whole substring) and implemented an implicit treap?

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

Я перед началом раунда думал, что частичное решение D будет набирать 500, а полное +1000. Поэтому сначала решил задачу для ограничений D1 и.. был слегка удивлен.

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

Разделение задач а-ля Code Jam заставило меня затупить так же, как я обычно туплю на GCJ: потратил кучу времени и попыток, пытаясь написать красивое шаманство в D2, а в итоге простого бинпоиска по ответу оказалось более чем достаточно.

Еще обиднее стало в тот момент, когда в последние 20 секунд нашел баг в E, но не успел исправить и отослать. Сегодня однозначно не мой день.

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

I think it should be a better contest but ...!!! :)

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

spent so much time writing nice code for E

http://mirror.codeforces.com/contest/670/submission/17746555

only to forget to change the size of the segment tree

I feel like shit

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

Problem E Why my solution got TLE Here is my code:Your text to link here...

This complexity(nlog^2n)

Then another my solution is:Your text to link here...

Both solution Got TLE on test 12. please help me

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

Problem E..

Why my solution Got Tle in Test 12 Your text to link here...

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

Problem E why my solution Got Tle on test 12 Here is code:code..

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

how did a O(n log(n)^2) in problem C gets TLE on test 125 17726278 ?!!!!

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

I think test data for D is weak, 17727910 can be broken with an overflow, with large N, large Ai, and small Bi.

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

Problem C got TLEd with O(n+m) Solution, But passes with scanf and stdio sync off.

Maybe the problem setters shouldnt keep it that borderline where 2 solutions of the same complexity have different result cause of I/O Methods.

EDIT: I was wrong, It is not the IO, but the use of map instead of unordered_map, but that still confuses me, even more so.

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

wat

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

Great contest.
Very soft increase in the difficulty of the problems.

I want to repeat the experience :)

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

I'm gonna ask a very professional question: how do you use your time efficiently till system testing end? (except pressing f5 rapidly which I'm doing right now)

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

How come this submission gave TLE on the C problem? 17725819

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

What is the difference between simple map and unordered map ? I see many people prefer using the later.

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

Это был лучший контест, что я когда-либо решал! Огромное спасибо авторам контеста за задачи =)

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

Too slow............System Testing?

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

Problem D1 gives more points than D2, but it's actually the easy one. Isn't it?

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

Slowest System Testing EVER!!!

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

Is multiset much slower than map ? I got TLE for C due to multiset. I was trying something new and now it failed. :(

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

TLE Test 132...Thanks Mike :D

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

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

seems Codeforces is little deceitful.

instead of waiting so long in pending system test ,you wait so long during system test

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

I got WA for setting High=1e9 in binary search for D2 . How to calculate maximum value High can get ?

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

Подскажите что такое Вклад = -3?

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

    Вклад отображает то насколько полезен пользователь для общества. Чем больше плюсуют ваши посты/комментарии тем выше становится вклад, чем больше минусуют — тем соответственно ниже.

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

Can someone explain me why I got TLE on pretest with this (problem B)? I used std::sqrt, don't think it will work so slow... http://mirror.codeforces.com/contest/670/submission/17732164

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

I liked the round, but if the system tests have to be this long, then no, just stick to the regular rounds.

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

DAMN!!! tomorrow is comming,but there're only 75% checked !!! So slooooww!!

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

To be safe,I set the high in D2 to 4e9. But my code fails on test #128 T-T

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

Can someone explain why have i got RE13 on B with this code http://mirror.codeforces.com/contest/670/submission/17726464/. It literally ruined this round for me.

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

Nice to participate to

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

Waiting for system test to end like...

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

Why is there a penalty for Wrong Answer for pretest 2 in D2? Pretests 1 and 2 don't have penalties right?

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

Мое решение задачи C: http://mirror.codeforces.com/contest/670/submission/17731716 Как вы можете заметить, асимптотика решения — O((N + M)logN), но вердикт — TL. Видимо, TL ловится из-за долгого считывания. НО я нашел идентичное моему решение по задаче C, которое получило ОК: http://mirror.codeforces.com/contest/670/submission/17742515. Как видно, оно отработало за 1918мс, что очень близко к TL. Мне кажется, что мое решение тоже верное, просто работает чуть больше 2 секунд, поэтому прошу пересмотреть вердикт по моему решению.

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

like a boss! problem E:

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

That hash table hit me HARD!! What a great lesson by the problem writers :). Thank you, you guys make me learn something new.

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

Shouldn't this solution:http://mirror.codeforces.com/contest/670/submission/17745728 Fail on cases like "(((((.....)))))" if you start deleting right from the middle of the string this solution would keep iterating over all of the characters in the original string?

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

anti-hash table test was MESSED up...

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

Мб баян, но цитата из условия: "Обратите внимание, что запись числа, которое Вася передал Кате, не могла начинаться с нуля, кроме случая, когда передаваемое число и было нулём (в этом случае оно записывалось как единственная цифра 0)."

Крайне расплывчатая формулировка с совершенно ненужной подставой. Сколько ни перечитывал, мне и в голову не могло прийти, что для этого случая в тестах будет 01 и 10, а не просто 0. Ведь чёрным по белому написано что "единственная цифра 0". Нехорошо.

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

Why did this solution — http://www.codeforces.com/contest/670/submission/17743870 receive a compilation error?

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

I know that it is unbelievable but I sure that it is happen, during the system test after all my problems have been test I found my rank is 644 and after the contest finished I found it 640 HOW!!!

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

Народ, кто-нибудь может объяснить, почему у меня на системном тестировании так "тормознул" тест 132? При том, что предыдущий тест (тоже при максимально допустимых входных данных) отработал нормально. Заранее спасибо.

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

    Поменял unordered_map на map и зашло...

    Мораль: никогда не используйте unordered-контейнеры в C++ — работает дольше, да и набирать тоже дольше.

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

Почему решение С с multiset падает по времени, а если поменять на map заходит? Вот решение с multiset 17731907 А вот с map 17749945 Разве multiset.count() не за логарифм работает?

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

D1 should be of 500 points and D2 should be of 1000 points. Higher constraints problem should ideally be having more points.

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

    And I automatically agree with you since I failed D1 but not D2 LOL

    But to not be biased, I think either scoring is fine. In the way it is it seems the large input is just a bonus score. Those who solve D2 are supposed to also solve D1 correctly anyway. (Well, except in the case of some overflows which many and I have overlooked because of small inputs...)

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

Nice

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

So tell me how the problem setters (or a contestant?) generated anti-unordered_map case? How to prevent our solutions from being hacked (´・_・`)

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

Problem D2. Not able to find any error in my solution. It fails in test case 128. Can someone please help in finding out the error. I uploaded the same code for D1 which got accepted. Here is my solution. Please help :p http://mirror.codeforces.com/contest/670/submission/17734861

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

I've been doing F and my code got Runtime_error after cout the output nad I dont know why. Here's my code: http://mirror.codeforces.com/contest/670/submission/17828267 Anyone can help, pls?? P/s: my English is not good sry if u mind.

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

In problem D2 if I take the value of "r" for binary search as 1e10 then I get AC but if I use r=1e12 initially then I get WA as the answer comes something arbitrary like 350488137400 in place of 0 .Is there any constraint on choosing the value of r in binary search as I have been stuck on quite a few questions where probably the problem was that my value of r was near the likes of 1e15 or higher?

WA on test case 2 with r=1e12:237333175.

AC on keeping r=1e10: 237326598.

Could anyone please help me out with this?

Edit: I figured out that my variable "a" was having an overflow despite being long long which gave me the error.