**안녕하세요, 코드포스!** (Hello, Codeforces!)

I'm super happy to introduce you to Codeforces Round #566 (Div. 2), which will take place on Jun/11/2019 16:05 (Moscow time).

The round will be rated for all Division 2 participants, yet any Division 1 participants are welcome to join us out of competition.

You will be given **6 problems** and **2 hours** to solve them. Score distribution will be announced later.

The listed handles below are contributors. Thank you for all who listed!

- Problem idea: McDic (ABDEF), arsijo (C)
- Problem preparation: McDic
- Coordinator: arsijo
- Testers: Lawali , final_child , Dr_Park , pllk , Aleks5d , antoshkin
- Father of Codeforces and Polygon: MikeMirzayanov

This is my first Codeforces contest ever. I hope everyone who will join this contest enjoy. Thank you!

**WINNERS**:

- Castor
- thecodinglizard
- puyu_liao
- UoA_Kanade
- ItstInternationalTourist
- LucaSeri
- orz_liuwei
- emengdeath
- ashutosh450
- hyfzbtrs

**UPDATES**:

- Let me spread the meme from McDic Minecraft Telegram group —
*Ggungah*. - Score distribution is
**500-750-1250-2000-2250-2750**. - Editorial is available.
- Congratulations for the winners!
- I am sorry for weak systests for B and F. Sorry again.

Auto comment: topic has been updated by McDic (previous revision, new revision, compare).Best of Luck for your first contest as a problemsetter.

Wa! A Korean round!

:fan:

:ban:

:kek:

upvote if you believe there will be kpop tasks in his korean contest

that will be wonderful(P.S BTS ARMY)

Listen to twice while solving twice problems.

skill 1000

listen to twice twice while solving twice problems twice.

skills 1000000007

mod 1e9+7

Hit you with that ddu-du ddu-du du~

I wish everyone high rating!

Excellent tester for Excllent Contest ㅇㅅㅇ

Yes, he is. ㅎㅅㅎ

Korean round will be amazing!!!Oh my my my, oh my my my! I've waited all my life. Oh my my my, oh my my my! Looking for something right:)

Why

`Hello`

is`안녕하세요`

but`Codeforces`

is`코드포스`

which is shorter than`Hello`

?Also thought how difficult is it to write just "Hello", just unbelievable

That's not even a Hello.

It's a Hi. XD!

The other side is that

`Hi`

is longer than`Hello`

! xD`여보세요 : Hello`

`안녕하세요 : Hi`

Google Translate

And 'Hello' can be used as both '여보세요' and '안녕하셰요' in my country, so It is also able to say the length of 'Hello' and 'Hi' is equal. :)

I have always wondered how Chinese/Korean people write things

That's an art :D

(However I have not mastered it yet. T_T)

It is actually very simple. We have these Oriental supernatural psychic abilities to inscribe complex letters into paper without using hands.

I wonder how Arabs too

Nope writing Arabic is easy.Arabic alphabets are simple in shape.

No, I'm Iranian and our font,

`Persian`

or`Farsi`

is like`Arabic`

. I think it is easy. :DMaybe these different opinions are because of different viewpoints. For us

`Korean`

or`Chinese`

are hard to understand. But now I see that you think`Arabic`

is difficult. Because we all are used to our own languages and other ones seem strange. But the most important think is thatall languages are beautiful. :DSorry for my bad

`English`

. :DBtw do you Korean think your language is hard? Maybe I'm wrong.

Though I write Chinese since I born, I still think writing it is a exhausting job, lol.

Korean letter seems scary because one syllable is cracked into a single letter. However, it's actually a composition of consonant letters (ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅍㅌㅎ) and vowel letters (ㅏㅑㅓㅕㅗㅛㅜㅠㅡㅣ). So while there are 11172 Korean letters, you only have to remember 24 simple letters- after then you can write all of them!

Korean people are proud of their language, and we have a "language day" which recently became a holiday. I also think this unique system makes pronunciation much clearer and complete. However, I'm not sure if it's easy, because "easy language" and "easy letters" are a different matter, and "smart letters" and "easy letters" also are. It's my mother tongue, so at least I'm not the one to judge.

Nicely said!

Technically it's Annyeonghaseyo XD

let's hope problems statements are long in Korean

Well, if you use hanja honyong(漢字混用) to write 안녕하세요, the meaning of the phrase would be clearer (especially for Chinese). 안녕하세요=安寧하세요, it's asking if someone is free from worry. And, 코드포스=Kodeuposeu. This word is just a transliteration.

That is not true at all. 안녕하세요 means Hello, and since Codeforce is a proper noun we just write down how it sounds. Using Hanja Janyoung is outdated, not to mention that you're not supposed to replace the Korean words with Chinese. You just use it as clarification for words with many meanings.

In Korean, we have multiple levels of 'politeness'. 안녕하세요 is being very polite, and 안녕 which would roughly translate to Hi carries the same meaning.

Waa~~ It will be Good Good Round~~ :)

korean round <3

It will be good round :D

How does it feel to have div2 after div3?

BTS brought me here!!

i hope there will be short questions !

umh

"...Thank you all who listed!:

- myself, arsijo

- myself

- arisjo

- tester — [some testers and myself]

- Mike"

tm McDic

McDic orz

Finally your round has arrived! Congrats! :D

The contest has extra-registration?

Yes

I hope a once wins your round :D

Unusual time for the contest, again

I wish it will be a great contest . Thanks for this Effort

... and who is the mother? did cf and polygon got born by bipartition?

Happy ratings to everyone

크으.. 국뽕에 취한다.. Cheer up McDic !

I want to do last contest as a

Specialist. ->BlueFocus on the problems and worry less about your ratings, it will automatically follow :)

All the best!Yes! You are right.I will be

tryingmy best.Deeply immersed by your curve :D

Sorry to say, My C failed due to my minor mistake.

Hurt me a lot.

I gave too much effort into C.

I think I will miss by +1 rating for becoming blue.

sees a codeforces roundMe: Codeforces round yay!notices it's koreanMe: Codeuposeu round assa!BTS bring me here

Is it rated up to 2100 rating like many other div2 contests?

Yes.

what a typical question

Blackpink also cool)

Auto comment: topic has been updated by McDic (previous revision, new revision, compare).Maybe the reason for the unusual time of the contest is Iran vs South Korea soccer match!

Or maybe Korean football players want to participate in their contest (;

Let me fly up to Purple on gookbbong round~~~~~~~~

욱닥

How could you say 욱닥 on comments??

욱닥

Do you guys think doing a contest after anesthesia is a crazy idea?

Yes, it is a crazy idea

Well let's see how much I can get negative rating.

i think it will be a great idea for me ,i won't feel the pain of my rating not increasing.

Guys, don't try this or you will end up competing with half-closed eyes xD

퍼플가게해주세요...(Let me go to Purple this round)

WOW! I really did!!

Hmm. Why does nowadays always 6 problems? Is this only fast coding?

https://t.me/mcdic_ch

If anyone needed link to his minecraft telegram channel...

That channel is not used for a long time.. lol. I have active chat group now.

That is all what I found, sorry :D

So share your active chat group!

It seems that I haven't got the ability to solve problem D as it scored 2000. (smog

Seeing the score distribution , i guess it is (speed + implementation) contest.

hi team :)

is the contest rated for div 3?

Absolutely

Yes, of course

That's why I love $$$ $$$ ̶M̶a̶t̶h̶f̶o̶r̶c̶e̶s Codeforces

[deleted: irrelevant]

What an amazing implementation contest!

In D why answer is not center of tree ?

check a look:

4

1 2

2 3

3 4

Try this case:

The only answer is $$$2$$$.

so if the answer is not the center, then it must be one of the leaves right ? How to check that ?

Suppose $$$v$$$ is not a center and not a leaf, then there are two leaves $$$l$$$ and $$$m$$$ at different distances from $$$v$$$ (suppose $$$l$$$ is closer). Consider the vertices at the same distance from $$$v$$$ as $$$l$$$ and notice that some of them are not leaves.

Ok thanks but I know how to prove that. What I want to ask is that if it is not the center, how could we find the leave which is the answer ?

I tried to find centroid on slightly modified graph(I deleted chains starting from leaf nodes) I was late for about 30 sec to submit

How to approch E ?

The powers of f3, f2, f1 were terms of different tribonacci sequences with different first numbers. I couldnt figure out the sequence of powers of c, and it was also not there in OEIS :(

Matrix Exponentiation is must, but couldnt figure out the matrix for c :'(

Yeah, same ... wasn't able to figure out powers of c. Didn't know about OEIS though. Thanks for that :D

If you make $$$n=n-3$$$, then powers of c would be $$$2*\sum_{i=1}^n i = \frac{ n*(n+1) } {2}$$$

You could reduce the problem to solving $$$G_{x} = G_{x-1}*G_{x-2}*G_{x-3}$$$, if you take $$$G_{x} = c^x F_{x}$$$. But, I couldn't see the fibonacci thing lol. Maybe we should have given the contest together xD.

Power for c was (n-2)*(n-3) using summation of AP formed: 2*(1+2+....(n-3)).

The answer is some power of $$$f_1,f_2,f_3,c$$$

To deal with the power of $$$f_1,f_2,f_3$$$ it is a three-term recursion.(Fibonacci number is a two-term one). It can be rewritten in matrix form, and use fast power for large power.

To deal with $$$c$$$ it is 2* A062544 in OEIS? It has a closed matrix form and solve it similar to the first one.

Update 1 : Check tutorial/other stuff for better calculation of c

Let g(x) = logc(f(x)) and h(x) = g(x) + x.

The original equation becomes h(x) = h(x-1) + h(x-2) + h(x-3).

After this, the problem could be solved by matrix power mod.

exponent " c " can be attached with f(X) to make it g(x) = (c^x)*f(x) ;

Yes. They look equivalent. I guess I am just not very comfortable with exponents.

I looked at your code https://codeforces.com/contest/1182/submission/55452776

However, I was unable to understand the last 3 lines :

It would be great if someone could explain them!

Suppose after solving $$$h_x = h_{x-1} + h_{x-2} + h_{x-3}$$$ we end up with something like: $$$h_n = u\cdot h_3 + v\cdot h_2 + w\cdot h_1$$$.

Therefore, $$$f_n = f_{3}^{u} \cdot f_2^{v} \cdot f_1^{w} \cdot C^{3u + 2v + w} \cdot C^{-n}$$$

By Fermat's little theorem, we can take the reminder of the exponents mod $$$(MOD-1)$$$ to simplify the calculation.

I hope this explains.

As expected chinese and korean rounds are tooooo mathematical, btw good problems. how to solve d , e and F >

how to solve C ??

sorting first by the number of vowels, then alphabetically, on the one that ends, and then we create two arrays and run by the sorted, we look at the neighbors, if the letters are 2 words, then we sort again and see if the number of letters is equal, then it is 1 word. sorry, i don't know English very well.

huh! after implemeting c i went for hacks.. toooo messy .

Shitty fast typing contest.

I think in problem C finding

mis enough and printing lyrics just makes problem complicated.I dont think so, just create a map<int, string>, work with indices and then print map[i], after finding M.

Yeah

yaa.... it's happened with me.

How to solve E ??

Any idea about pretest 16 in C? Is this logic wrong: For a given word,check if there is a word with same vowel count and same last vowel. If it isn't there,Try to check if there's something with same vowel count.

case: 4 a e e u

holy crap. i should have run a pass first for finding all pairs with both vowel count and last vowel same,instead of doing both at the same time. changed that and your TC passes. Is this logic right? ^

that's it

C was devastating :))

B was literally devastating.

count me in

Many submission will fail at problem B, i did 4 hacks and was close to 5th.

some hacks were

single dot (.)

single (*)

and (*****)

and

.*.

**.

.*.

and

5 10

..........

..*.......

.******.*.

..*.......

..........

And what the answers? it should be NO for all?

answer will be NO

Predicted OMG ^^

hahaa.. even i went to hacking after first 3 problems as it was very hard to solved the remaining in remaining time. i did 4 hacks, submitted invalid input for 5th otherwise it would be 5. LOLOL..

so st completed, so many many FST on B.

C was tough for my current implementation level but I somehow managed to pass the pretests in the last minute of the contest lol

Auto comment: topic has been updated by McDic (previous revision, new revision, compare).hhaha

A: quite nice

B: cases

C: probably some cases too, didn't think of this task

D: quite an easy idea I think, shitty to implement

E: maths

F: maths

I'm sorry, but I didn't find any of these tasks entartaining, very bad problem set (for me).

good analysis, though d was good. i think the problems were not learning oriented. I was expecting this, as it has became too common in chinese and korean rounds. even dp problems are like they r picked from some maths olympiad books.

I think D is so hard (sad)

Is a nice problem though. I'm still thinking

first submit D, then talk! you made 9 attempts for D and still couldn't solve it! still a bad problem set FOR YOU?

my code shows this output on C Idk why

2

that first

the this

mcdics about

wow round

edit:never mind stupid erase mistake

Thanks for fast editorials

Why my solution for C (id:55462095) wasn't judged when I submit at 01:59:45?

RIP B

B = hackforces

If honestly I don't understand. Pretests must be weak or this was just occasionally? I mean hacks like '.' and '*' and test 23 and so on. I understand that it is my fault but all in all pretests was too weak.

I asked them in the contest time about test only a * and they answered me its a invalid +, so if you were in doubt about this, you could have asked, even tho the pretest should have this test, I think.

How to calculate power of c in question E ?

I think it is 2^(n-2) -2

For n=8 I calculated power of c as 60 and 116 for n=9

According to me power of c was (n-2)*(n-3). I wasn't able to calculate powers of f2,f3 in time.Is power of c correct??

What an unbalanced contest. Worst problemsetting ever.

https://codeforces.com/contest/1182/submission/55446726

O(TQ) solution passed in 31 ms

what? hows that even possible?

Seems like I have to give 2-3 contests to just come back to my original rating now :(

it`s a time to be expert ^^

E and F was math problem. I think that F was pretty good, because there isn't many Trigonometry Problems

What is the test case 23 in div 2 B . My submission is fail on it test case 23 https://codeforces.com/contest/1182/submission/55452743

Only one "*"

There should be atleast" +" symbol it neans all upward down left right and middle should be filled..so how single star??

A "+" shape is described below:

A "+" shape has one center nonempty cell. There should be some (at least one) consecutive non-empty cells in each direction (left, right, up, down) from the center. In other words, there should be a ray in each direction. All other cells are empty. Find out if the given picture has single "+" shape.

This is what a + is, so, it s not obligated to have a + shape in the input, and that is why you have to code to find if there is only one + shape in the input, are you kidding me?

Alteast one is each side is written...so how single star?

dude, can you talk private? i wana help you

ur solution fails in :

5 10

..........

..*.......

.******.*.

..*.......

..........

answer should be no

Even I coded the same logic as you. It will fail this case:-

5 3

.*.

***

.*.

...

.*.

Answer should be NO but your code will print YES

It is something like that :

6 5

.....

..*..

.***.

..*..

.....

..*..

Answer is "NO".

Can someone check what's wrong in this solution for C? https://codeforces.com/contest/1182/submission/55451525

In problem E, I am facing a doubt: I initially thought that I can condense the problem to the powers of f1,f2 and f3(ignore the c power for now). The powers of f1,f2 and f3 will be the nth, (n-1)th and (n-2)th term of Tribonacci sequence. But the powers will be in form of mod(10e9+7). As we know (a^b)mod M != (a^(b%M))%M ex: a=2,b=5,M=3, how do i effectively get the answer?

(a^b)mod M == (a^(b%(M-1)))%M for prime M, see Fermat's little theorem and Euler's theorem for general case.

Oh, Didnt knew this property. Thanks :)

I_Remember_Olya_ashmelev thanks!

For test case 35 of problem B My compiler gave a 'NO' but codeforces custom invocation is giving 'YES' and I think I handled the case on which it is failing.

here is my submission:

Can someone please tell me why is this happenning?

The problem is in your last two loops, it accesses invalid address

`for(ll j=0; j<=m; j++)`

( it should be j<m )Can you check my idea for solving "E"? In my point of View we can calculate degrees of F1, F2, F3, C F1's degree is Fib(n)

F2's degree calculates by: F(1) = 1; F(2) = 2; F(3) = 3; F(n) = F(n — 1) + F(n — 2) + F(n — 3) F2's degree equal to F(n);

F3's degree calculates by: F(1) = 1; F(2) = 2; F(3) = 6; F(n) = F(n — 1) + F(n — 2) + F(n — 3) F3's degree equal to F(n);

C's degree calculates by: F(1) = 2; F(2) = 6; F(3) = 14; F(n) = F(n — 1) + F(n — 2) + F(n — 3) C's degree equal to F(n) + (2 * n — 6)

Is my solution right? I got problem with Fast Computing "Tribonachi's"

Checkout this link.

Thanks (Спасибо)

anyone can help me ? my code in problem B get wrong on test 23 But i test it locally and i get it OK

With what?

Test 23 has only one "*", are you outputing "NO"?

I copy test 23 and run in my code and get "NO"

case: 5 5

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

answer is "NO",but you get "YES".

5 5 ..... ..*.. ..*.. ..*.. .....

your test is ? if it is , i test it locally and get it yes

try this one : ans will be no bt ur sol is giving ys.

5 10

..........

..*.......

.******.*.

..*.......

..........

thank you very much .

Congratulation to puyu_liao

Make it unrated

Its impossible. There weren`t any technical problems on CF during the round

For E,I have an idea.

It's easy to calculate the power of f1,f2 and f3.I have a way to calculate the power of c easily. The transfer matrix:

0 0 1 0 0

1 0 1 0 0

0 1 1 0 0

0 0 1 1 0

0 0 0 1 1

By using this,we can change [a,b,c,d,e] into [b,c,a+b+c+d,d+e,e]

The formula of the power of c is f[i]=f[i-1]+f[i-2]+f[i-3]+2*i-6

Let a=f[i-2],b=f[i-1],c=f[i],d=2*i-6,e=2

So now we can transfer it.

The initial matrix is [0,0,0,2,2],because f[1]=f1*(c^0),f[2]=f2*(c^0),f[3]=f3*(c^0).

And sorry for my poor English.

Thank you, understood well enough.

It was what I worried about. If my country's users set problems for the first time and there was some factors that can be issue, next time my country's (other) users set second problems, people won't expect much.

For your information, I am not the first Korean problemsetter.

I see. Anyway, because it's been a long time since there was Korean problemsetter, more prudence should have been.

Please don't care much about problemsetter's nationality. There are many good Korean problemsetters and I believe community care enough about them.

your problem set was nice enough

I, didn't emphasized the problems' quality. And the quality of these is good. The sad thing is weak pretests.

Ya, luckily I passed problem B

ainta and .o. set the best Codeforces Round in the history of Codeforces ever, so it's OK.

On a serious note, I think the round was nice. B is cool for Div2. D is quite interesting with strong pretests. Difficulty distributions are bit flawed, but it's fine if D/E was swapped, and you can see scoreboards anyway.

(I actually didn't liked problem F, because one can just copypaste NAIPC 2019 D and play with some stupid binary search. but the model solution was easier, and I think it's not an issue for 99% of participants..)

In the end, difficulty distributions are not something setter can guess correctly, and interesting problems are much more important. For every CF round, there is someone complaining about pretests and distributions, I just advise to ignore them :)

I, also want to think that way, but since that contest was over before more than 4 years, and since that there was no contest in which Korean was main problemsetter, for users joined after that contest this was like the first Korean problemset contest. It is also true that there are still many chances.

Well balanced problem set, nice.

problem c: is it valid? this first wow i .

how to sove D?

i an not sure

Can anyone provide me a clear explanation on D? I thought many things non of them worked properly/on-time.

Guys, what is the time complexity of rating changes calculation? Why does it take so long? Can't wait already =)

https://chrome.google.com/webstore/detail/cf-predictor/ocfloejijfhhkkdmheodbaanephbnfhn

I recommend it

E can also be solved using Reeds Sloane Algorithm(extension of BM for non-prime modulo). Link

Test case is weak for problem C, there is no case present in the systests where no. of vowels of a string is more than 100000. I used that number as an array index in some part of my code, got AC even after I miss sized the array.

Exactly. In my solution too I used an array of 100000 for storing the strings with number of vowels. I was sure that my solution would fail at system testing. I was shocked to see it passing. So yeah,

Weak Test Cases For Problem C.I'm sorry about issue.

Anyone who can take a look at my solution for E? 55469911

I have no clue why it passed on small range input but failed on the bigger ones.

You should calculate exponent modulo phi(MOD) which is MOD-1 in this case.

Thank you very much!

Attention!

Your solution 55457716 for the problem 1182C significantly coincides with solutions Athena_1111/55457716, Anti-Mirzayanov/55458879, gandhipaaji/55458903, shreyanshgeek_unofficial/55458966, Harsh_jiit/55459119, turtle407/55459150, kaptaan/55459742, firefox/55459961, shivansh100/55460142, Izanagi/55460447. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.com/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.

I just got this message. I want to clarify (especially for people who are not aware of that) that I was using the online compiler ideone.com (I was using it for the past 3 contests and nothing wrong had happened before) without knowing that apparently my code was public (I didn't even know that this feature exists). I have not copied the code of anyone!! You can check the timing ( MY SOLUTION WAS SUBMITTED FIRST & I AM 100% SURE AND RESPONSIBLE FOR MY WORDS). I have written every line of this code!!! I haven’t even used functions from any website. It really pains to receive this message in the first contest where I do well. What a luck!!!!!!! :/ Be just.

"I was using it for past 3 contests and nothing wrong had happened before"Good that it happened to you now. Now you will never use ideone.

It is fine to use it if you have private mode enabled.

Why aren't earliest submissions only accepted in case of plagiarism?

Because someone can copy the code from ideone and submit it faster than the original author.

True

True, I should've payed attention but it's unfair to be punished because of others' malevolence.

The world is not fair.You may as well get used to it.

You are getting punished for your carelessness as well.

Why was I skipped in Codeforces Round #566 (Div. 2), but counted rating.

HELP！HELP！HELP！

LOL

copy code?

yes

I wonder if there's a solution for D using tree hashing, which I tried but failed.

shit. load shedding caused my specialist dream.

Really good and imaginative problems!

stupidSolution for D:There are two possible types of vertexes, corresponds with the statements of the task:

1. One of the leaves

2. Vertex in the "middle" of the tree.

If there is only 2 vertex -> answer 1

If there is only 2 leaves -> answer is one of them

First of all, let's run bfs from each of leaves, and mark all the vertexes with their depths.

(depth[leaf] = 0, depth["middle"] is the maximum). Now, if vertex with maximum depth is unique, lets check it.

After, we need find one vertex with degree greater then 2 (it is always exist because of quantity of the leaves). Run bfs2 from it.

////Let's define nearest vertex with degree greater then 2 for current vertex like a

good.In this bfs, we need mark all vertexes by the pairs = {distance(current vertex,

goodvertex), index of thegoodvertex}.It easy to proof, that if answer is possible, than there is only one leaf with unique pair {distance to its

goodvertex, quantity of leaves that correspond for thisgoodvertex}. Now we just need to check this leaf.code: 55487910

Why is my code for E giving wa on test case 5?

Got the error ignore.

weak tests for D

test

9

1 2

2 3

3 4

4 5

2 6

4 7

3 8

8 9

answer should be 9

https://codeforces.com/contest/1182/submission/55494688 gets AC but it shows -1 for this case.

OMG I am really sorry about that. I handled almost ten type of trees and it was not enough.. :(

UPDATE: Added that test in dataI added that data and rejudged your case. I will try to find the way to rejudge all other's unofficial submissions. Thank you.

Regarding question C during the contest I submitted first one Then I found a small mistake and changed it to second one. If you compare both submissions the change was a variable n for a constant value. It was accepted, but then just out of curiousity I resubmitted my first submission third one you can compare it with my first one and it is literally the same, and I got AC with this.

However this is clearly wrong I mean you can test it with a small case ( 4 aaaaa aaaaa aaaaa aaaaa) My first and third submissions return 0 which is wrong and my second one returned 1 which is correct. So I'm not complaining about the fact that I lost points by fixing something that was wrong but would have been accepted anyways, I'm just wondering maybe the test cases are really weak or not good enough.

I am so sorry about it. I should try so many various selections...

UPDATE: Added that test in dataLet's try our best!