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

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

Привет, Codeforces!

Мы с 74TrAkToR рады пригласить вас на наш совместный Codeforces Round 662 (Div. 2), который пройдет в 07.08.2020 17:35 (Московское время). Он будет рейтинговым для всех участников, чей рейтинг ниже 2100.

Задачи были придуманы и подготовлены AlFlen и 74TrAkToR. Мы также хотим поблагодарить всех, кто оказал нам бесценную помощь в подготовке этого раунда:

На раунде вам нужно будет помочь главным пони из мультсериала My Little Pony (Флаттершай, Эпплджек, Искорка, Пинки Пай, Рарити, Радуга) и решить 5 задач, одна из которых имеет две подзадачи. У вас будет 2 часа на их решение.

Разбалловка будет объявлена ближе к началу раунда.

UPD: Разбалловка 500 — 1000 — 1500 — 1750 — (1500 + 1500)

UPD2: Разбор

Желаем всем удачи и высокого рейтинга!

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

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

As a tester, give me contribution, please:) UPD:( UPD1:)) Thanks you.

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

!

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

Why 6 ponies but 5 problems?

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

Nice pic for seek attraction!!

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

I feel old now ;)

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

I love watching "My Little Pony" cartoons, so I look forward to this contest!

But I am not a girl ;)

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

when a newbie like me see a contest has 5 problems, Oh no this means I will only solve 1 or 2 maximum :/

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

This cartoon is interesting and I hope the problems are short and interesting too!

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

As a participant , give me contribution .

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

What are all the possibilities when a contest submission gets "Skipped" ?

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

Is series is available in YouTube :-)

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

Typo: Pinkie Pie is not Pinky Pie.

Also that's a good theme! (I am a brony)

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

я май литл пони не люблю.

я ненавижу май литл пони, и делайте со мной что хотите.

и мне по барабану.

вот я вот, вам говорю: я их ненавижу.

и че?

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

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

AlFlen If possible can you guys please add some kind of divider between the fairy tale and the problem statement so that people who are only interested in the problem statement can directly jump into it? no offense just a suggestion

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

one of which has two subtasks. That's interesting !!

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

The second pony from the left does codeforces rounds :GWagnwChinoWoah:

pic-selected-200806-2040-34

Orz

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

i dont like pony

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

Hope it will be queue free contest..

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

My daughter loves My Little Pony, she should take care of this round...

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

Hi ainta!

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

To my disgust, I actually thought those ponies were standing on two of thier legs and I wondered what that third thing was.. figured it out now.

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

PONYFORCESSSSS UNITE

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

I now must watch my little pony now to try to get a better score on this contest.

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

Woahh, it's so cute <3

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

NERD_MAX = Helping My Little Ponies on CF.

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

Oh god unfortunately I cannot participate in this My Little Pony round because something has come up. How do I unregister from a contest? I can't find it.

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

    Go to the number of participants link beside the contest and click it. There will be a cross symbol beside your name. Just click on it. Moreover, you can also not submit anything during the contest. It won't affect anything.

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

weird flex but ok

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

Never watched My Little Pony animated series but the contest seems interesting!!

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

Behind this cuteness, I believe there will be some dangerous problems. Best wishes to everyone. Go and be high rated ;)

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

bronies everywhere...XD

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

Will I be able to finally get my colour?

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

wow, a second My Little Pony contest since Codeforces Round 259 (Div. 1)!

»
6 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится -8 Проголосовать: не нравится
Expecting a problem statement be like
»
6 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I didn't see Rust in the registration email. Is that a mistake or is Rust really not available for this round ?

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

What are the things hanging between the legs of the ponys'?

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

I didn't know sparkle is one of the main ponies. Thank you for this round, I'll be waiting for some nice puns.

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

Wow!

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

Wow!

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

The background looks so...cute?

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

BINOD

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

Автокомментарий: текст был обновлен пользователем AlFlen (предыдущая версия, новая версия, сравнить).

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

Finally... a perfect excuse to join a rated round after nearly two years!

Oh, it's Div. 2 only...

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

As a pony , I'll participate :)

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

when will codeforces support swift language? Sadlly, So many languages have been added to codeforces but not swift. Swift is really a elegent, efficent modern language! Hope administrator support swift someday!

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

Are problems have been prepared on ponygon?

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

Participating in this round while I have an exam tomorrow feels like suiciding

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

I am scared, I am noob and don't want my ratings to fall now.

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

Finally scrolling through a comment section where you can actually read the comments.

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

GL HF

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

Hey! Hello? Am I on the blogpost?

Well, guess what?

Yes, I am! And that's Awesome!

Problems setters, Pinkie loves you sooooooo much, too much that I want to throw a party!

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

Ready for contest!

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

I hate the story of problems! :(

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

No offence to problem setters ,but i am unable to understand the question itself.

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

wtf the statements say?)

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

Horrible statements. I couldn't even understand what was asked.

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

Can I get my ratings back by nothing playing this round :(

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

Is it an English Comprehension Contest?

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

Are we here to code or improve our vocabulary.Seems like its and Mock IELTS/TOEFL Tests.

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

Poor statements!! I am unable to understand even the first question !!

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

There was no need to have a sooooooo long story, it would be better to have a more mathematical statement than a confusing long story.

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

The names of the characters were so complicated to keep track off and the long stories. Sorry but not a good contest.

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

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

This was just waste of time.... The problem statements were so confusing. Actually this contest was not of coding but english.

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

I dont care how pinky pie eats her patty cakes just tell me what I have to code for!

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

I hate the story of problems! :(

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

Not able to understand even first problem!

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

The statements should be simple. There is no need to always introduce a story in the problem. I am very disappointed after this contest.

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

Why the f*** do I have to see these DISGUSTING PONIES.

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

Why the fuck you want to include stories in problems, and these weird names- Rainbow dash, Flutter shy..... What do you think, by including stories, the round becomes interesting??

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

no more storyforces

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

How did all of the contest setters agreed to release these kind of statements?

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

Too much storytellings... Just give us simple statements please...

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

Contest in a nutshell: Read the stories and fall asleep. Setters be like.. Didn't understand the question? We did not want you to.

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

I don't like pony stories anymore.

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

It's really not that hard to write clear, concise statements.

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

It took so much time to understand problem A :-(

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

Nasty contest

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

To the guy who designed the problem statements: Hats off! You've a tendency to play around with words and over-complicate easy to understand sentences.

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

I planned to watch My Little Pony when I was reading the announcement, but after this contest, I would say no.

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

How to solve A after the contest?

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

Am I taking an English examination?

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

The statements are too long and there are too many unnecessary(as I think) stories.

And there was even a typo in the statement of problem B. As you can see in the picture below, the two phrase "After the sixth event" came out incorrectly as "After the second event"(Only true for the latter). Although the typo was fixed after a while, there wasn't announcement about this. Moreover, I posted the comment similar to this about 1.5h before, but after about an hour, the comment was deleted for an unknown reason.

Why couldn't no one find the typo before the contest? Why there wasn't announcement about the typo? And why my previous comment disappeared? Not pretty good. :(

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

This round tested our English rather than our programming skills.

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

This round tested our English rather than our programming skills.

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

Just asking. Are the top rankers(in this round) even trying problem E1 lol

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

Now I got a reason to hate pony.

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

Problems are nice but the wording of A really messed up my tempo. Also the names of characters (i assume the names of the ponies ) in the problem statement messed up the understanding of the problem to me for some reason. I would recommend maybe using some familiar and common english names.

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

Was I the only one who found C way easier than B (At least on the implementation side)?

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

Enough grid construction and heavy weight english word exercise for today. I quit.

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

How to solve D?

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

Why the fuck memory limit on D is 256 MB

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

Can somebody tell me the idea behind problem C? I tried like everything. Thanks in advance!

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

    Apply Binary Search MySolution

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

    the answer will depend on the maximum frequency of a number and count of maximum frequency. To notice that see that if max freq is 3 , it occurs twice , you can make ab...ab...ab , now just from this you can notice that ans would be (n-(mx)-(cnt-1))/(mx-1), as you need cnt — 1 spaces from the end and to populate mx freq you need mx spaces , out of remaining spaces you need to partition it in mx-1 segments like ab...ab...ab , which is optimal when we divide them equally or just division. Link — my solution

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

    Look u have to find frequency of the number occuring most number of times. now find total how many numbers are there having this frequency int val=n-maximum_frequency-(count of numbers having maximum frequency -1) val/(maximum_frequency-1) will give the right answer .

    Let us see this with 2 different examples {1,2,3,1,2,5,1,2,8,1} Here the maximum frequency is 4 and the number having this frequency is 1 so we can see answer will be 2 Now lets take change the example a bit {1,2,2,1,2,5,1,2,8,1} Here the maximum frequency is 4 and the numbers having this frequency are 1 and 2 so now you can see the answer becomes 1 {1,2,1,2,5,1,2,8,1,2} can be one solution reason is that 1 has maximum frequency so we arrange array like 1....1....1...1 we put 1 at both ends to maximize the distance and put other elements between 1s but when 2 also has frequency 4, two 2s will start falling between two 1s(something like 1,2,2,1.... So,every time we encounter another number having maximum frequency we need to put it at last (something like {1,2,1,2,5,1,2,8,1,2}) Look at the first test case for a bit of clarification

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

Was it just me or did others find the wording of the first question a bit difficult as well?

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

Today I get to know why we were taught English first then programming.

Though the concept and problem idea is good, I suggest the Problem statements can be used for essay writing competitions.

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

I'm doubting my English skill after this contest

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

I solved C and still can't understand A

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

what is the pretest 5 of problem D?

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

Bye Bye rating

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

The problems were good but the wording of problem A messed up my tempo. Also the names of the characters (i assume names of ponies ) confused more from understanding the problem statement. I would recommand using some common and familiar english names.

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

image.jpg

No comment

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

She confused the contest with the storybook

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

You can choose to become a writer rather than a contest designer

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

What is the correct approach for C??

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

Codeforces be like lets have a new member in the family : PonytaleForces !

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

storyforces

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

Lol what the heck was this contest

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

D — это H отсюда(link), только вместо треугольников ромбы и вместо звездочек буквы(что особо не меняет суть)

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

what's the idea in problem C

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

Kindergarten question designer is better for you

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

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

I saw this coming thats why I tried confirming it here , looks like they were joking back then.

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

What is the approach to solve D?

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

Write stories if you want, but please at least give us formal definitions for the operations to be performed.

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

What is the approach to solve D?

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

    for each cell we calculate the number of ways to form a pattern with center is the cell.

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

    $$$up_{i,j}$$$ = Number of cell with same color above this cell
    $$$dn_{i,j}$$$ = Number of cell with same color below this cell
    $$$a_{i,j}$$$ = $$$min(up_{i,j},dn_{i,j})$$$
    $$$b_{i,j}$$$ = max size of left half of a rhombus centered in this cell
    $$$c_{i,j}$$$ = max size of right half of a rhombus centered in this cell
    $$$m_{i,j}$$$ = $$$min(b_{i,j},c_{i,j})$$$ = max size of a rhombus centered in this cell
    $$$ans$$$ = sum of all $$$m_{i,j}$$$

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

    Notice that all squares can be treated as a rhombus of size $$$ 1 $$$ and count them. After that remove all squares that can not be a center of a rhombus of size $$$ 2 $$$ add those left to the total number of rhombuses. Do this again for size $$$ 3 $$$ and so forth.

    How can this be done?

    Notice that a cell can not be the center of a rhombus of size $$$ n $$$ if there exists a cell of a different color such that the Manhattan distance between the two cells is less than $$$ n $$$.

    Using this fact we can implement a multi-source BFS from all cells which have different colored neighbors and in each round count the number of cells that are not visited. (Be aware that the memory and time limits are quite tight).

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

      Interesting point of view. Is it $$$O(nm)$$$?

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

        Yes, because this solution is almost only BFS and the graph that the BFS is run on contains $$$ nm $$$ nodes and about $$$ 4nm $$$ edges. Therefore the complexity is $$$ O(nm + 4nm) = O(nm) $$$.

        However the constant factors are quite large and I lost a good $$$ 20 $$$ minutes and $$$ 150 $$$ points (due to submissions) trying to optimize them. IMO the limits are way to tough and a solution with the expected complexity should pass immediately.

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

It's a competition where I've got the best result I hope I won't be hacked

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

When will the Editorial be published?

By the way, the contest you prepared was great!

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

My video editorial for Problem A and Problem C

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

Where I am wrong in Problem B!, I just counted number of active planks , with updating frequency table for each plank entry as entry and exit happens and also in this frequency table maintaining the maximum value and number of odd and even values, now the answer is YES only when maximum value in frequency table >=4 and also total planks %4==0 and no odd frequency is there in the frequency table else answer is always no.?

Where I am not getting problem statement please tell my mistake!

Thanks in advance.

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

    You have to make only 2 storage.

    You only need planks (a,a,a,a) and (b,b,c,c). {here a,b,c are sizes of planks}.

    In total you need just 8 planks.

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

      This is nice explanation. Knowing that the problem statement is understandable, too.

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

      Thanks I think that I misunderstood the problem as in total we can more than one rectangle and square storages, confused with the word storages in the problem statement. Thus just one change of making count to 8 will make my solution pass, I dont know what is the sense of such problem statements and what they checked. Facepalm after losing 120 Rating again I gave the contest today as my mood was bad and I thought of freshing up my mood but Now I cant describe to what scale the statements worsened my mood again.

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

    I didn't do well in this contest but could solve B.

    Here is the way I did it, keep 4 sets (two, four, six, eight) two => freq[2, 4) four => freq[4, 6) six => freq[6, 8) eight => freq[8, inf)

    Now as queries come, these tables can be updated on the fly in somewhat O(logn)

    You can build when

    8 has >0 members (2 squares)

    6 / 4 has >1 members (2 squares)

    6 has >0 members and 4/2 has >0 members (1 square, 1 rectangle)

    4 has >0 members and 2 has >1 members (1 square, 1 rectangle)

    the overall complexity is O(nlogn + qlogn)

    You are basically missing lots of cases and also not all planks are required to be used, so the %4 check is completely incorrect

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

    You can do it with much more simplicity. Just maintain a map to count the frequency of each element. Now take an array of sets with size 2 : set<ll> cnt[2].
    In the 0th position, insert those elements whose freq is >=2
    In the 1st position, insert those elements whose freq is >=4

    Now, for each query do the following:
    If we need to add/remove something, update both frequency map and the array of sets (check the count and see if we need to remove or insert something in O(log N).
    And to get "Yes/No" we have 3 cases :
    1. If cnt[1].size() >=2 -> YES (we have 2 squares feasible)
    2. If cnt[1].size() ==1
    a. If the freq of the element is >=8 -> YES (we have 2 squares feasible)
    b. Otherwise, see if you can construct 1 square and 1 rectangle by checking the size of cnt[0].
    3. The answer is NO.

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

    if we have 4 planks of length 1 and 2 planks of 2 and 4 planks of size 3. so total no of planks is 10(toatal planks %4!=0) so it will give no according to your code. But ans is yes

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

I thought C problem was easier as compared to the B problem or did I overcomplicated my problem B solution?

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

Can anyone plz tell me why getting WA on C https://codeforces.me/contest/1393/submission/89275288
i m using binary search to find the answer in binary search i m putting the no.s with greatest count first then the no.s with smaller count can anyone plz have a look

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

Was there any edge case in B.I tried every possible combination still it gives wrong answer on Pretest 5.

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

Really a lengthy and messy one , please keep to the point questions

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

Can someone please help me to figure out this issue. This was my cf submission 89275621 but in local PC my answer as was different.

#include <bits/stdc++.h>

using namespace std;

const int N = 100005;
int B[N];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    for (int &i : B) i = 0;

    int t, x, n;
    cin >> t;
    for (int i = 0; i < t; i++) {
        cin >> x;
        B[x]++;
    }

    cin >> n;
    while (n--) {
        char c[2];
        cin >> c[0] >> c[1];
        if (c[0] == '+') {
            B[c[1] - '0']++;
        } else {
            B[c[1] - '0']--;
        }

        vector<int> A;
        for (int &i:B) {
            if (i != 0) A.emplace_back(i);
        }

        sort(A.begin(), A.end(), greater<int>());
        bool ok = false;
        if (A[0] >= 8) ok = true;
        else if (A[0] >= 6 && A[1] >= 2) ok = true;
        else if (A[0] >= 4 && A[1] >= 2 && A[2] >= 2) ok = true;
        else if (A[0] >= 4 && A[1] >= 4) ok = true;

        if (ok) cout << "YES\n";
        else cout << "NO\n";

    }

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

can someone tell what was the pretest 4 in problem B ??

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

why only the no. with max count are required to find ans in C?

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

    _pastor_

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

So it was a right decision to leave the contest after reading the first problem. XD

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

I appreciate the problems, but does anyone find that it was more unnecessary story, and had lots of ambiguity, specially problem B ?

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

Hoping to see Editorial without ponies.

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

Story forced me read the examples and guess the problem.

»
6 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +14 Проголосовать: не нравится
  1. Short and concise problem statements X
  2. NO BACKGROUND STORIES X
  3. Useful samples X
  4. Super interesting problems X Only thing which was there — Ponies Ponies Ponies
»
6 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Problem D is very similar to this 1015E2 - Stars Drawing (Hard Edition)

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

Was E dp by sorting for each char's disappearance and using hashing for fast string comparison?

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

hey, did someone pass B pretests using hashing ?

I used unordered_map in c++ to quickly update and query planks' count. But I ve got TLE on pretest 4 even if my program complexity is q^2.

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

Please stop writing problems like E

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

    Can you explain your solution for E1, E2?

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

      I'm lazy to write it, this is almost my sol by dorijanlendvaj

      dp[i][j]=amount of solutions if you remove index j of string i looking at strings<=i add a space at the end of each string for each string you can sort indexes by the substring you get when you remove that index(how is left as an exercise to the reader, you can compare 2 substrings of 2 strings in log with hashing you can also compare (string x without index i) and (string y without index j) using 3 substring comparisons now you can do 2 pointers on the sorted indexes on this string and the previous strings to find which dp values of the previous string to add to the dp values of the current string

      I got tle on system tests because I did everything with extra log, here is the same sol in C++17(64) :)

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

How were we supposed to do B? I finished this ridiculous method of using a python dictionary which maps to nodes in a balanced binary search tree right after the contest ended, but I'm 100% sure this can't be the solution to a problem which is B.

https://gist.github.com/bananabrick/a3676673ab072c1e6fe4fb3852ecbdff

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

    I also used python. I used a counter to count how many of each plank there are. I also made 4 sets, for counts cnt>=8, 6<=cnt<8, 4<=cnt<6, and 2<=cnt<4. Update these sets as expected for every updated plank. To get the answer, check all possibilities that make a square and rectangle, such as any one plank cnt >= 8, or on plank cnt>=4 and 2 planks cnt >= 2, etc. There are a few other possibilities, and I think there might’ve been a better way to organize them, but this way worked after a couple tries.

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

    From a mental health standpoint, the best approach for problem B is to give up.

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

    My solution for B on c++, it only uses an array of frequency and 4 integers, i think is pretty self explanatory, but ask if you need extra comments on the code D:

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

I read the statements to my younger cousin, he enjoyed the round! Thanks StoryForces! :D

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

Thanks for the good questions from the authors, but the topic is a bit long. A disappointing round. In question b, I don't know how to extract the last three elements in the stl map. I used a search engine, but I did not find any useful information. So I keep trying. After trying for a long time, I finally figured out how to do it. after I pass b, it has only been 20 minutes. When I came up with the algorithm of c and wanted to start writing, the game was over. I don't know how to describe myself, it's disappointing. The only gain is to be familiar with the use of map.

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

Ponyforces

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

How to solve E1 & E2?

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

Problem B i feel like i did everything right yet it gives wrong answer on Pretest 2 :/

public static void main(String[] args) throws IOException
	{
		FastScanner sc = new FastScanner();
		PrintWriter pw = new PrintWriter(System.out);
		//long startTime = System.nanoTime();
		int num = sc.nextInt();
		HashMap<Integer, Integer> planks = new HashMap<>();
		ArrayList<Integer> doubles = new ArrayList<>();
		ArrayList<Integer> fours = new ArrayList<>();
		int maxVal = 0;
		int max = 0;
		int secondKey = 0;
		int secondMax = 0;
		
		for (int i = 0; i < num; i++)
		{
			int val = sc.nextInt();
			if (planks.containsKey(val))
			{
				int p = planks.get(val) + 1;
				if (p == 2)
				{
					doubles.add(val);
				}
				if (p == 4)
				{
					fours.add(val);
				}
				if (p > max)
				{
					max = p;
					maxVal = val;
				}
				else if (p > secondMax)
				{
					secondMax = p;
					secondKey = val;
				}
				planks.put(val, p);
			}
			else
			{
				planks.put(val, 1);
			}

		}
		int events = sc.nextInt();
		for (int i = 0; i < events; i++)
		{
			String op = sc.next();
			if (op.equals("+"))
			{
				int val = sc.nextInt();
				if (planks.containsKey(val))
				{
					int p = planks.get(val) + 1;
					if (p == 2)
					{
						doubles.add(val);
					}
					if (p == 4)
					{
						fours.add(val);
					}
					if (p > max)
					{
						max = p;
						maxVal = val;
					}
					else if (p > secondMax)
					{
						secondMax = p;
						secondKey = val;
					}
					planks.put(val, p);
				}
				else
				{
					planks.put(val, 1);
				}

			}
			else if (op.equals("-"))
			{
				int val = sc.nextInt();
				if (planks.get(val) > 1)
				{
					int p = planks.get(val) - 1;
					if (p == 1)
					{
						doubles.remove(new Integer(val));
					}
					if (p == 3)
					{
						fours.remove(new Integer(val));
					}
					if (maxVal == val)
					{
						if (secondMax > p)
						{
							max = secondMax;
							secondMax = p;
							maxVal = secondKey;
							secondKey = val;
						}
						else
						{
							max = p;
						}
					}
					planks.put(val, p);
				}
				else
				{
					planks.remove(val);
				}
			}
			if (max >= 4)
			{
				if (doubles.size() > 2)
				{
					pw.println("YES");
				}
				else if (doubles.size() == 2 && max >= 6)
				{
					pw.println("YES");
				}
				else if (fours.size() >= 2)
				{
					pw.println("YES");
				}
				else if (max >= 8)
				{
					pw.println("YES");
				}
				else 
				{
					pw.println("NO");
				}
			}
			else
			{
				pw.println("NO");
			}
			
		}
		//long elapsedTime = System.nanoTime() - startTime;
		//pw.println(elapsedTime/1000000);
		pw.close();
		
	}

Anyone have a Java solution that worked for Problem B?

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

Language could have been simpler and question could have been without the long and unnecessary stories. This would have made the questions and round much more interesting.

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

Not just the story and problem statements, but the test cases were not helpful too. I keep getting WA on B (Test case 2) and more sample test cases will definitely help.

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

Good! story reading contest at codeforces

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

statements are so long ...

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

This contest was quite in favour of good English readers with great vocabulary.

Something which was not expected in codeforces.

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

Thanks for the free IELTS test.

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

The golang solution of A is wrong unexpectedly

It is too simple to program wrong

Anyone can help me ?

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

Problem D can be solved by BFS.
key observation: At one position, the largest diamond is the distance to nearest different alphabet.
my submission

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

AlFlen The Problem Statement for A was very confusing. Is there a possibility to dis-consider all the penalties until the explanations were provided?

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

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

Can anyone please explain me why my code for B was giving TLE Link

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

Can anyone tell me why my solution for B using gave TLE LINK? I changed my whole implementation beacuse of this.

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

why i am getting wrong answer in pretest 2 problem B..

89271877 my logic

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

Great contest! I've enjoyed it, even though, as always, I've spent lots of time with silly errors. Looking for other player's solutions, I came into a program with a swastika commented in the first lines. Looking for other solutions of the same user, I saw that was a constant. The player is OuDaRjA_17o3oo2, and I think he should be banned. Do you know how I could report it?

Many thanks in advance.

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

I have a dream!

One day I'll make a div2 round.
There will be no stories in problems!

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

Nice Problem, but A and B were hard to read for me T_T

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

My screencast, where you can see video explanations for A-D, watch me fail to rotate a square by 45 degrees, and see me struggle on literally every problem except for C, all in 720p!

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

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

How to do E?

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

Unclear Problem Statements + Weak Pretests.

Disappointing!

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

My video solutions to problems (A-D).

I hope you will learn something new. Enjoy watching.

https://youtu.be/NMbqtVdVZqI

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

For a moment lets ignore story in A

All the problems were good coding problems rather than some mathsy problems. Felt like div 1.5 as E1 was only done by 2 official participants and E2 by none D problem was my favourite one

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

I'm excited that there are 62 people fail system test because of my hack tests of problem C :p (test 62,63)

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

That's why sometimes for Problem A I prefer analyzing test cases rather than reading those massive story lines :3 I was just scrolling and the story continuing :3

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

89276784 Can someone please explain where I'm going wrong? EDIT: Never mind.

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

The memory limit on problem D is evil :(

I thought i'd reach 1900 again but, well test 70 had another idea.

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

    I totally agree with you. A solution which is same approach with me passed by 982ms and 200MB, I got TL on 70. The difference between my solution and that one is long long and short, and I've used map<char, vector<ll,ll>> to store input. I think it's unreasonable constraint which give TL to the solution that's complexity is O(NMlog(26)+MN*4), eventhough jury's solution complexity is O(NM). What an unlucky round :(

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

Maybe the authors could have written a formal description of the problem at the end of each problem statement

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

.

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

Stories are fine, writing wrong problem statements is not.

In problem E it is mentioned several times that we have to calculate number of possible original scrolls. But actually we have to calculate how many ways there are to choose letters to erase.

For example, on test

1
aaa

"correct" answer is 4 because you can delete nothing (1 way) or delete one of the a (3 ways). But there are only 2 possible original scrolls.

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

    yes, you're right. it was clearly mentioned in output section only.

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

      Clearly? Nothing clear about that sentence

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

        Print one integer: the number of ways to get a version of the original from the scroll modulo 10^9+7.

        It does not ask you about the number of versions but about the number of ways to get it.

        I could have made it clearer I suppose. My bad

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

          That's amazing that you put it to output section, but let's take a look at the problem statements:

          To not let the important knowledge slip by Twilight has to look through all variants of the original scroll and find the required one. To estimate the maximum time Twilight may spend on the work she needs to know the number of variants she has to look through.

          In other words statements tells you: we need to look through all the original scrolls and find number of variants of those.

          More of that, in Russian version we see same wrong statement. So whoever translated the problem, clearly understood it same way as I, which was wrong.

          More of that, there were no sample explanation, which probably could show the correct way as well.

          So it is not "made it clearer", it is "made it correct".

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

          That would be clear if you explained what ways are different. Should I account for the order in which letters are erased?

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

    I noticed this during the contest when looking at sample input 2 (thankfully quite a bit before starting to write any code), and was a bit confused/disappointed that (at the 90-minute-mark) there had not already been an announcement about this miscommunication. At least my clarification request was answered quickly.

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

      I noticed this during the contest when my code output 4, I looked at dp values and went "yep, that's correct answer", then reread the statement and went "yep, it is mentioned several times".

      Samples are part of the statement, of course, but it's not like it is clear by looking at the test what is the answer. It would be ok-ish if there were a sample like the one I mentioned which is so simple that it should be clear what is the right answer. And of course there shouldn't be any places in the statement with clearly wrong meaning. One thing is to have unclear statement, but it's different to have clearly written wrong things.

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

I am new at codeforces, which blogs can help me with the various information about the site and how should I get started?

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

Is there a way to find out the distribution of ratings, or in general, an up-to-date ratings post? I see that the “Help” section has a rating section, but that seems outdated.

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

IMO, I really enjoyed this contest... sad thing is that I figured out problem B and C after the contest...

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

can someone tell me why my solution of problem B wrong ? It failed on test 11 which is very large.

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

Very fast ABC + using different templates + using printf and cout in different problems

Was it a team solving?

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

I have a request to all. Please don't make fun or roast authors on any issue. Just kindly convey your message to them. These contests are for practice so try to learn as much as you can rather than abusing it.

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

Didn't find much ponies, but okay :P

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

https://codeforces.me/contest/1393/submission/89280374

why is this solution taking so long in time.

as i only used static array and linear code.? plus no dynamic objects.

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

Didn't find much ponies, but okay :P

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

would somebody please tell me why i am getting tle on the 11th test case of problem B My submission for the above mentioned question https://codeforces.me/contest/1393/submission/89281935 Thank you in advance

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

pls help me with problem c, I used binary search in my code I am trying to get maximum distance up to which we do not any issue in allocating , here is the link to the code. https://codeforces.me/contest/1393/submission/89284370

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

Can anyone tell me my mistake in problem B?

I am counting all pairs of planks that can be used for making rectangles and then checking if those pairs are at least 4. But it gave WA on test 4.

My submission

Sorry for my English.

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

    What if there is a situation where there are , 2 planks of type 1, 2 planks of type 2, 2 planks of type 3 and 2 planks of type 4 , your code will give the output "YES" , but the answer will be "NO" , cause you can't make a square.

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

When will the ratings change?

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

If anyone need Detail explanation( not a video tutorial) of B & C

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

can anyone look at what's wrong with my solution for problem D?

my approach:

  • u[i][j] Number of cells with the same color above this cell

  • d[i][j] Number of cells with the same color below this cell

  • l[i][j] Number of cells with the same color to the left of this cell

  • r[i][j] Number of cells with the same color to the right of this cell

I find these 4 matrices for each character ('a' — 'z') then for each cell I added this

                int len = min(l[i][j - 1], min(r[i][j + 1], min(d[i - 1][j], u[i + 1][j])));
                ans += (len + 1LL);

to the answer considering rhombus is centered at (i, j).

https://codeforces.me/contest/1393/submission/89271632

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

i know it doesn't matter , but here is sad story:- I submitted "C" 17 seconds before the contest ended , Got wrong answer in testcase 1, I was clearing my count array upto n, wasn't clearing the last counter. Legit the only difference between my accepted code and the unaccepted one is i<n and i<=n.89277176 89280405 I am consistently getting minus in the last 4-5 contest, today this happens, man this feeling sucks.

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

A Greedy Solution for problem C:

Sort all elements by its frequency (name it to array A).

Let m is the max frequency.

Initialize array B of m empty arrays.

So the i-th of A is added to the (i%m)-th array B.

The answer is size(B[m-1])-1

My Code: 89285457

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

If you want to understand the level of the round, check this is problem https://acm.timus.ru/problem.aspx?space=1&num=1221

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

Is it just me or, did the explanation of the example test case given in problem statement B change during the contest? After the second event Applejack can build a rectangular storage using planks with lengths 2, 2, 2, 2 and a square storage using planks with lengths 1, 1, 1, 1. became=> After the sixth event Applejack can build a rectangular storage using planks with lengths 2, 2, 2, 2 and a square storage using planks with lengths 1, 1, 1, 1. I ended up wasting a lot of time, trying to make the explanation of the test case make sense to me, but I was not able to! Given that the language of the problems were not clear this time, I thought I was committing a blunder in reading the statement! But, apparently, when I click on the problem statement now, it seems perfectly fine! Did that change during the contest, or am I tripping? The questions were pretty great though, even though I could not even solve one :P

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

300iq is a serious simp to not reject these shitty statements.

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

what is the reason for time limit exceeded in my code for problem B ?? link

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

Why ratings aren't updated yet?

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

.

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

How to solve problem C using Binary search ?

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

    l = 0, r = n-2 (minimum answer and max answer) and now simulate to find out if "mid" distance can be obtained.
    update r and l accordingly.

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

      How do you simulate?

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

        maintain a bool array, where you start placing 1 at positions which are to have a number. i.e if the numbers are 1 2 2 3, and you are at mid = 1, you will start with numbers with highest frequency and go till the lowest one.

        it = 0 (starting position)

        you placed 2 at 0, bool[0] = 1

        it = it + mid + 1;

        it = 2 you placed 2 at 2, bool[2] = 1

        and so on.

        so you have to also keep in check the first non allotted position for it. that way you place all the elements and traverse only once. binary search takes logn, hence complexity is nlogn.

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

          What do you do after?

          For example this test case 1 1 1 2 2 3 3 4 4 and mid = 2

          I think that there are some details that I'm not getting

          I understand that you have 0 0 0 0 0 0 0 0 0 Then with 1: 1 0 0 1 0 0 1 0 0 Then with 2: 1 1 0 1 1 0 1 0 0 But what to do after to avoid having 1 1 1 1 1 1 1 0 0

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

            I don't think you need to avoid 1 1 1 1 1 1 1 0 0 . After you have got 1 1 1 1 1 1 1 0 0 this means answer exists . We can do following : first keep element of greatest frequency (say 'mx') at distance of 'mid' and then go to second number (note they are sorted in order of decreasing frequency) and fill max(f2,mx-1) where f2 is frequency of second number. For 4,4,4,3,3,2,5 and mid = 2 , it will be 4 3 2 4 3 5 4 . In bool array it will be 1 1 1 1 1 1 1 . Hence we can return true . If it was sort of 1 0 1 1 1 1 1 we would have returned false.Am i correct PatronSaint

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

          I am getting WA on test 44 can you please point out my mistake. solution I used binary search and filled bool array with only most frequent numbers

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

            I don't really understand how your check function is meant to work, so I don't know what exactly it does wrong, but I was able to construct a relatively small test case where your program gives the wrong answer. Happy debugging!

            Input:

            1
            24
            1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6
            
            

            (The correct output is 5; your program prints 0.)

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

can any one help me with problem D

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

A blog, that was written got removed by the author, and it spoke about weak test cases in problem B. The submission here 89257174 fails on the following test case :

12 
1 1 1 1 2 2 2 2 3 3 3 3 
1 
+ 10

which should output "YES", as you can see that there are 3 squares possible, but the submission outputs "NO". If this is the case perhaps we might need to rejudge the submissions.

Spoiler

UPD: The blog has been reposted. Kindly look into this.

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

Personally dont think that statements were overcomplicated or difficult to understand. I believe that having less story in the statements would mean having no story at all

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

Problem C, For the below test case, how to arrange the numbers? The distance between each of the same numbers have to be strictly x. Right?

10

4 4 3 2 4 1 3 4 1 2

Answer for above test case is 2.

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

Really liked the round! Fun problems and good statements, I had a good time participating.

Looking forward for the next pony round!

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

Please upload the editorial of this contest!!

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

Just my opinion -> Problem statements could have been little clear.

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

I didn't understand question A. Please tell me how to start filling blocks initially. Thanks a lot.

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

First StoryForces, then weak pretests and now no editorial even after 10 hours. What's wrong with you guys?

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

The problem statements were too long, I think Mike should change the sites name to storyforces. several participants have pretty bad english background. Before making such long statements and stuff contest writers should think about it. just saying no offence....

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

Can someone please point out my mistake in my solution for question B?

Link

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

So why am I getting a runtime error while using vector of size 10001 in the problem B? Link to the code

While using a map is actually accepting the solution? Link to the code

Note: Please check the third line within the function 'void solve()'

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

when will the tutorials will be made available ?

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

Can someone explain to me the approach for Question 1? What I did was initially the first player would play the move by coloring all the edge pieces at a gap of 1, afterwards in each subsequent turn the player will complete nth layer and half fill the n-1th layer, counting layers from outside to inside, so each time side of unfilled square will decrease by 2. At last when n-2 >= 1, the last player can fill the remaining part. Have a look at my program 89228494. Any other approach is appreciated.

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

    Hi, let me help you out with this.

    Basically in any move, you will fill the outer half-filled circumference and half fill the inner circumference. Outer circumference here means extreme left column + top row + right column + bottom row.

    So basically each partial step has: - Input: half-filled outer circumference of color 1(size n square) - Color 2 pony takes her move and.. - Output: half-filled outer circumference of color 2(size n-2 square)

    This reduces the net count of the total square by 2 overall (easy to see 4x4, remove the outer circumference to get 2x2, 5x5 to 3x3 and so on..)

    NOTE_1: For the very first move, however, we just partially fill the outer circumference. Instead, it can be seen as having an extra outer layer that we completely filled and partially filled the actual layer (let me know if this needs more explanation)

    So the answer is (n+2)/2; (added +2 for NOTE_1).

    It took me a long while as well, I hope the solution is intuitive ^_^

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

When we can see the editorials pls??

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

when do we get the editorial

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

When will editorial be released for the contest!!

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

Why is my answer for B resulting in a runtime error? Someone pls help. My code — https://codeforces.me/contest/1393/submission/89245490

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

Not able to find the editorial , is it published?

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

What's the intended solution for E1? I found that both the time and memory limitations are very tight for a 1e8 algorithm to pass.

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

    I have a $$$O(S*log(S))$$$ solution (where S is the sum of lengths of the words). However, I haven't been able to make it pass the time limit for E2. I suposse the constant factor is not small enough.

    The basic idea is to implement a function that allows you to compare pairs $$$(i,j) = i_{th}$$$ string removing its $$$j_{th}$$$ letter. You can do that in $$$O(log(n))$$$ using binary search and hashing (which is more than enough to pass E1). Also, you can do it in $$$O(1)$$$ by computing LCP array and a sparse table for constant time minimum in range queries (I won't go into details, you can think about it).

    Using that comparator, sort the pairs belonging to the same word, and then compute dp[i][j]= number of ways of doing the process for the first $$$i$$$ strings if I remove the $$$j_{th}$$$ pair of the last one. It's not that hard to realize that you only care about the sum of a prefix of the dp previous row (because we sorted the elements with our comparator). You can think about the details. Good luck!

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

where is the editorial?

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

I don't understand why does the problem setter has to make stories, why can't just give the problem statement straightaway, atleast this would rule out the ambiguity in the language and also will save the coordinators to give the announcements in the middle of the contest. I mean if you anyway have to give the crux of problem in the announcements why can't just give it in the actual problem statement itself !

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

To problem setters: If you love literature so much then publish your stories in a book. Dont create Storyforces

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

can someone pls tell me what i am doing wrong in problem B.[Here]is my sol.(https://codeforces.me/contest/1393/submission/89328093)

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

Please post the editorial

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

My B failed on system test 20(though pretest passed in contest). Did anyone else had such experience? I still don't know the reason, doing implementation in a different way gave AC.

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

Where is the editorial?

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

What about Tutorial ? Isn't it coming this time!!

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

https://codeforces.me/contest/1393/submission/89251484 Please help in finding the mistake..

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

I just attempted to solve problem D. I think I solved, and I wondered if anybody solved like me because I don't feel it was the intended solution.

I noticed that if you look at a 45 degree square, it's actually built of a diagonal square of size k on even/odd diagonals, and a diagonal square of size k-1 on the other diagonals. for example:

https://ibb.co/B4nJ3RH

There are two squares here. the 3 by 3 square:

https://ibb.co/rkCfbGc

and the 2 by 2 square:

https://ibb.co/Fz7jfYn

You can then reduce the problem to finding for each cell the largest square in the respective "diagonal matrix" where the cell is the left-most cell (when flipped 45 degrees right, it would be the upper left cell).
Finding the largest square of '1' for each cell where it is the upper left cell is a standard dp problem.

After you do that, you go over the cells and you simply check what's the largest square starting with him, and what is the largest square starting from the cell on its right. If the answers are x and y, the largest cut would be min(x,y+1). In the example above, x is 3 and y is 2, and so the answer is 3.

You don't need multiple dp's because when you do it you check if it's the same char.

The complexity: you build a dp of size n*m, iterate through the matrix once to build it. Then you iterate through the matrix once more and use the dp to get the solution. Space: 2*m*n, Time: O(n*m) with a small constant.

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

    Have you coded this up?

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

      I don't think you see updates on the other comment's thread, so here is my comment again:

      It's beautiful! (it actually TLEd in python so I translated to cpp).

      Submission (no comments): 89526378

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

    that was very neat!!

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

      If it's correct xD

      Hope someone verifies that it worked. I might code it in the next few days but I'm quite busy right now.

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

        i will try code!! (ง'̀-'́)ง

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

          Looking forward to see of it works!
          In a few days if you don't reply I think I might try and I'll comment here with he solution.

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

          It's beautiful! (it actually TLEd in python so I translated to cpp).

          Submission (no comments): 89526378

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

EDITORIAL PLEASE Now when it's really time to show your English skills, you are shying away. At least help me upsolve the problems.

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

If you guys gonna take a long time for the Editorial than at least let us know !! What's the point of not answering and delaying ?

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

Upload the Editorial pls.. come on' guys..

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

Its more than 24 hours now .. when will u give the Editorial ? And please use simple english in the editorial

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

Editorials never take more than 24 hours to be uploaded... What happened?

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

3Blue1Brown styled visualization of neal's clean code for Problem B

neal's very readable solution for B: 89215119 The corresponding visualization for sample test case:

 Running example

Link to video if image does not render: https://youtu.be/QqIjqxUWkgQ

Unfortunately, the editorial is taking too long and I had originally thought of posting this there. If you want any other reasonably small test case visualized, let me know. Feedback is welcome.

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

Editorial?? PS: we don't need the ponies surrounded by fancy english words. What we need is logic to upsolve the problems.

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

We will post an editorial shortly. Now we are waiting for a good editorial in English. Sorry for delay.

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

А когда будет опубликован разбор?

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

We have a ready-made editorial in Russian. When we have a editorial in English, we will post a editorial

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

Here is my unofficial editorial for problems A-D

https://codeforces.me/blog/entry/81216

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

We don't want stories this time, in your upcoming Codeforces Round #705 :)