Hello! Codeforces Round #764 (Div. 3) will start at Jan/10/2022 17:35 (Moscow time). You will be offered 7-8 problems with expected difficulties to compose an interesting competition for participants with ratings up to 1600. However, all of you who wish to take part and have a rating of 1600 or higher, can register for the round unofficially.

The round will be hosted by rules of educational rounds (extended ICPC). Thus, solutions will be judged on preliminary tests during the round, and after the round, it will be a 12-hour phase of **open hacks**.

You will be given **7-8 problems** and **2 hours and 15 minutes** to solve them. One of the problems in this round is **interactive**. Don't forget to read the guide on interactive problems.

Note that the **penalty** for the wrong submission in this round is **10 minutes**.

Remember that only the trusted participants of the third division will be included in the official standings table. As it is written by link, this is a compulsory measure for combating unsporting behavior. To qualify as a *trusted participant of the third division*, you must:

- take part in at least five rated rounds (and solve at least one problem in each of them)
- do not have a point of 1900 or higher in the rating.

**Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.**

Thanks to MikeMirzayanov for the platform, help with ideas for problems and for coordination of our work. Problems have been created and written by ITMO University team: MikeMirzayanov, MisterGu, myav, Gol_D, Aris, SixtyWithoutExam and Vladosiya.

We would like to thank: itohdak, Yogi79, smtcoder, Ra16bit, Tlatoani, nigus, MrDindows, leaf1415, Kniaz, Alireza, mini4141, Jostic11, BitHashTech, An_yujin, Bugman и sodafago for testing the contest and valuable feedback. List of testers will be updated.

Good luck!

**UPD:** Here is a photo of our team answering your questions during the round:

**UPD 2:** Editorial

I wish every gray, become green! Good luck!

Can you please also wish for green to become cyan.

i wish every green become gray

your wish has been granted, i'm getting -73..

i wish for a ppo so that i have to get to CM while i am still in college

You're having internship?

I had the same reaction! :D

expert is enough

yess but i have a crush on CM

Like real life crush, She won't care peep laugh

i dont know any girl who like codeforces, it just that i imagine CM as a girl ...

Ara Ara! Re-zero or Mai san

my fav is chizuru from my domestic gf

it was a wish from terror himself it had to be true :)

I wish every unrated become gray :heart_eyes:

The WA become AC!

Sorry, system testing doesn't work like that

thanks

Sorry but I had different plans.

Hope this round will be so exciting!

Excited to participate in the first Div. 3 round of $$$2022$$$ and my first unrated round, yay!

Me too !

Hey Aris do you know Odin?

Time to stand up on my name :D. Let's get it this year. Also hoping B to be a bit easier this time xD

Good luck to everyone!

Interactive problems in div.3 round are epic.

Look forward to this contest!

Could we please have div3 rounds on the weekends? Most people in div3 probably have school Thanks

definite agree. i am in second period at the time and will not be able to participate.

agree! I haven't had the contests on cf for a long time, although my score is low

[deleted]

Grandmasters find Div.2 boring ...

I wish my cyan color become blue!

You are blue already

Nope , It's a Christmas effect :)

Gonna be sad when it goes

May God fulfill your wish.

Another permutation or binary search on problem C

How did you know, is it a common theme for div — 3 contests?

Will there be div 4 contests in the near future

Hope i will able to solve any problem on this round :)

Good luck too all

So excited to solve a, b after my hard training this week

nowadays div 3 is very unpredictable.

So true.

I tried solving a few interactive problems but got the idle limit exceeded! how to solve them?

I don't think there is any interactive problem that doesn't warn about flushing the output. Read the problem statement carefully from now on.

There is a link in the announcement of the round about interactive problems

Oh,no. I am very unhappy, because I will go to school on Tuesday. I want to have more rated, but I really won't have time. ):

me too..

i will have online classes :)

comeon dude, you gonna attend an online class.

Yeah me have online classes everyday because i'm still in high school :D

The status of the problem I submitted 40 mins ago is still in queue. Is the same happening with all of you?

HopeToPupilForces

So excited to see blogs on Codeforces( this the second one). I haven't seen them for a year. (just a joke)

Problems distribution a b c d e1 e2 f g and d is interactive

I wish my cyan color become blue!

I hope you done the best! Good luck for everyone!

my first contest .wish me good luck.

All the best buddy !

Hope this round will be interesting and make everyone

happy:)mother fucker bastard Mike mirzayanov son of a bitch asshole

Here we go again...............

feels motivated today maybe i can solve a and b good luck every one

can someone hack my solution for b or c?

First Div. 3 round in 2022!

All the best :) everyone, stay hydrated.

I hope I do good ;)

wow you guys are having fun (photo)

Thank you for this amazing round!

G has more submissions let's solve it.

can't solve G -> move to F

can't solve F -> move to E

can't solve E -> back to G ;_;

In the photo are all of these guys also the setters of this round or just for answering the question asked by everyone?

All the people in the photo are also the authors of the round

And which is you if it `s not a secret

I'm on the left

Then who was behind the camera taking the photos?

How to solve problem D,

I just thought of putting all the occurances of each letter into a set , & do the process optimally for k times , can someone help me, I know my solution will fail at cases like aaaaaaa, k = 2.. :

Hint — Binary search for the answer

Binary Search is not necessary.

Count freq of each character for i=1:26

if (freq[i]%2==1) // one of the occurrences of this character can be part of a palindrome at the middle position

the rest sigma(freq[i]/2) pairs of characters can be splitted evenly between each of the k palindromes.

https://codeforces.cc/contest/1624/submission/142239619

Can be also solved greedily.

Count occurences of letters in original string and count number of singles and doubles.

(doubles — how many pairs of letters there are, singles — number of letters minus doubles * 2).

Knowing singles and doubles values you can calculate solution.

There's no need for maintaining sets, you only need the counts of the possible number of pairs you can form for all the letters.

This divided and then multiplied by k (integer division) will give the number of pairs that will be assigned to each color.

If there are still other letters which have not been selected in any of the selected pairs yet, you can add 1 such char to the string of each color (eg: cac).

My Submission.

DAAAMN, I had so much fun solving E (although I didn't quite finish it).

I thought that out of all solutions we were supposed to pick one that has least segments — which imo is even better problem (not sure if harder then original though).

Actually my solution to that problems is O(n * m * n). Does anybody know how to solve this variant in better time?

I have idea :)

I somehow frequently mess up the easier problems smh. Got 3 WAs on B when it was just basic implementation, and wasted a lot of time on D, when my first instinct was greedy with priority queue, but ended up trying to solve it with Binary Search unsuccessfully and finally solved it with my first instinct smh.

Great problems though.

It’s so great to solve all problems without a WA for the first time!

Solved C using Kuhn's algorithm... LMAO :D

If you are interested:142249902

Same. The first thing that came to my mind after reading the problem is bipartite matching.

I solved it using priority queue :)

Could you explain your approach, please? I just don't see how's this problem about bipartite matching...

For each number a_i in the array, consider the set of numbers from 1 to n that appear when you keep doing floor(a_i/2).

For example, a_i=25 and n=5, then the set is {1,3}.

Then we have a bipartite graph of positions and the numbers that could go there. As we can only have one number in each position, this implies a bipartite matching in the graph.

I understand that the nodes in the said graph will be floor(ai/2) such that they are >= 1 and < n. But what about the edges ? How will they be formed ?

Update:I learnt what matching is now. We want to fill up permutation from 1 to N. so basically for each position i from 1 to N, we are linking it to all possible downgrades from ai that are >= 1 and <= n. And at the end we are just checking that n positions to fill and from 1 to N numbers to fill from, so our maximum bipartite matching should be N.Thanks santiago.slf. Got to learn new things, that I didn't know existed, what matchings are and Kuhn's algorithm for maximum bipartite matching.

me, too, the first idea that came to mind at this time. but failed to implement. everything is so simple but not obvious))

Why you are creating edge to (n + a[i] — 1) not a[i] ?

`g[i].push_back(n + a[i] - 1);`

Because 1 <= a[i] <= n

how to solve F? Tried something close to a binary search but got WA.

Yes. Just binary search.

I felt crippled at binary search in F :))

F made me realise that if my usual binary search implementation isn't suitable for the problem, then I am screwed :)

This round is amazing! I really enjoy the problems. Thank you very much :)

Video Tutorial B:https://www.youtube.com/watch?v=W-y8gQFrFOY

Video Tutorial C:https://www.youtube.com/watch?v=6k8YudeK_04

NOice:))

Why is G so simple, although I won't

Interactive problemsandBinarySearchForces.Name a more iconic duo. I'll wait.

Why? Just why??

Спойлерit's life

Got the binary search idea for D but did not know how to handle the odd case

I solved it now

Don't know why but That photo looks like a team of hackers from some Hollywood movie lol :/

What I learned from this contest . Take all inputs before even thinking of outputting an edge case

How foolish can I be at times

Great round!

Imagine not noticing this line in problem D.

Are exceeded queries in interactive problems always tagged WA. I kept on thinking about issues with the logic when my solution was actually asking for an extra query than needed.

You can have something like this in your code. Now you get MLE if you ask more than 10 queries.

Thanks. Looks like a very useful trick.

You can just keep an assert statement which will give you a runtime error if you exceed the query limit.

Hi

Great round. I really enjoyed solving the problems, especially problem G.

In F the condition that x < n was written on top, and I skip it so in 1h30m I can't reduce 11 queries to 10 queries lol :L rip everyone liked me :(

In the exact same boat as you lol. Hurts a lot since it's a rated contest for me.

yea but

howcomethe answer for the first testcase is3, it should be less thannright Aris?How about you read the goddamned statement before trying to point fingers nowhere?

Spoilerthis command assigns x=x+cSurprise surprise, the value

willandcanchangewell the statement wasn't clear for me, it hurts to be polite !?

Spoiler because i won't flood the page with useless writingDid reading the statement hurt as much?

Really, I kinda grew tired of seeing comments toward some issue that has been carefully crafted, such as this contest / problem, being like "

well, you know what, problem-author, I think that you are an idiot, the testers are idiots, and everybody that solved this problem are idiots (>500), and I really think I'm right ---- there is a grave inconsistency of some form in your statement that undermines the intended solution". Really, there might be times when such grave mistakes might pass, but let's face it: this situation would never happen, especially with such a well written contest.Moreover, the excuse of "the problem statement wasn't clear for me" is so underwhelming. It's not as if the statement is about Alice and Bob visiting a pillow case shop where they have to cut pillow cases in half, and to some people it might not be obvious that for some reason you can't cut pillowcases along the thickness line or some stupid not-inherent observation like that — the problem statement is as formal as it can be written, every detail

shouldbe in the statement, so yet again, we find ourselves back at square one:"is it really the problem setters fault or is it mine?"If after rereading the statement many times, very carefully, you conclude that it could very much potentially be the problem setters fault, you should alert ''authorities'' and then point out the inconsistency. But that comment was unbased on any evidence, it was made only because youbwere too entitled to try and figure out the problem statement on your own, immediately after hitting bumps you decised to blame one of the problem setters.

So, yeah, I do admit that I was rude, but probably I didn't offend the work of some people that spanned maybe weeks or months, and only some careless person.

lool, did you even read whatever you pasted? I didn't offend anyone, I was asking a question, I didn't complain about the problem during/after the contest, I also didn't blame the problem writer, nothing happened like that.

what I really see is you trying to mimic um_nik's attitude, and it just doesn't look good.

Yet againSo at this point, I'm either illiterate (which I'm not, since I was able to read the problem statement), you're trying to run away from conflict, or this (

"how come {this}, when {thing that should contradict the other}, right) is some funny inside joke that I'm not in on.Aris?"For my peace and quiet, I will assume the last although I strongly believe it is the second option, case in which I really hope you actually read what

IwroteAlso, is forming an opinion, argumenting it (with proof, to show what I actually understood and what led me to that cause) and then asking the opposite party what is their argument really um_nik's behaviour? If so, damn, he should get a patent for "behaviour". Sorry for trying to point out anything, and moreover, sorry for not leading your example in making a shitty argument towards a possible point to assert my dominance over.. whatever

Congratulations you're not illiterate, because you were able to read the problem statement.

Try to have peace in your life, good luck ;)

Was problem G taken from somehwere? It has way too many submissions.

Apparently, the main idea for the problem was the same as one of the ideas used in one of the problems in yesterday's Codechef Snackdown Finals.

hi bro

Right the logic is somewhat similar.

for question c can anyone tell me why my code gives tle for tc 2 https://codeforces.cc/contest/1624/submission/142232813 Thanks in advance!!

Nice Div.3 contest. Thank you!

Does "wrong answer Jury has answer, but participant doesn't (test case 3648)" means my answer is -1 but Jury is not or my answer is empty? Moreover, I just touch the length of segment must be 2 or 3 in problem E, but I implement it so complex, and finally get a wa2 without anymore clue... https://codeforces.cc/contest/1624/submission/142294335

Yes, it means that the jury was able to find an answer, but you could not. For example, consider this testcase.

The required phone number is just a duplicate of the existing numbers. Hence, an answer definitely exists. However, your code produces $$$-1$$$.

I get why my algorithm is fake. Thanks a lot~

Video Solutions for anyone looking

This round was very special for me because for the first time I have solved a problem in live contest. I loved it. I am happy and only I know how happy I am. We need more division 3 contest.

Got a binary search solution for F, but it gets W/A on 6th test. Can anyone explain mistate or send a test that fails https://codeforces.cc/contest/1624/submission/142288442 Thanks!

Participant Jury InteractionJury printed n as: 5

Jury has picked x as: 3

Participant asked to add: 2, x has now become: 5

Jury responded with 1

Participant asked to add: 4, x has now become: 9

Jury responded with 1

Participant has guessed the current x as: 10

The guess was incorrect.

Great, i understood my mistake! Thanks a lot!

https://codeforces.cc/contest/1624/submission/142255199 Can anyone tell me why my code for q.d is failing?

Please help me i am not able to find my miatake,thank you in advance for helping me

solved

Amazing contest!

The problems were very interesting, especially problem G!

can someone plz explain this line

from this sol of problem D?

oops, I tried to do something more clever with F and figure out the bits one by one. was wondering why I was retarded for the past hour lol

I'am gray. But it is showing under 'only unrated' in my profile's contest page.

maybe rating will be calculated after hacking phase? it seems that it didn't counted for anyone

just wait

Upsolved

Eby matching a string using extended patterns (with code) within regexes (DFS simulation). Perl: 142302044.Solution to Problem C using "Max Flow" :)142222070

Resource For Dinic's algorithm

If someday there will be an super-algorithm to solve all problems, everyone will be using that !

That will kill the very fun of problem solving

can anybody tell , wts the bug for my D'th sollution https://codeforces.cc/contest/1624/submission/142289003

solved it during test , it stuck on 10th test case , still cant figure out

the ans(len) will be 2*q --> if (r+r1 <k) but it will be 2*q+1 --> if((r+r1)>=k) you can check my solution logic is exact same sol link: https://codeforces.cc/contest/1624/submission/142286603

Just change your if condition from

to

`if((r1 + (2*r)) >= k)cout<<(2*q+1)<<endl;`

thanks @TooFastTooCurious , for pointing out my stupidity

nice contest

Please help, For which TC I am getting WA (Problem C) Your text to link here... thanks in advance

InputExpected OutputYour OutputCommentsWe already have $$$[3, 4, 5, 6, 7]$$$. We can create 2 by dividing 4, and we can create 1 by dividing 7 repeatedly.

O(32(n+m)) was not acceptable in problem G?

My O(30 * M) code got accepted. https://codeforces.cc/contest/1624/submission/142284695

Is it not O(30*(n+m))?

I am going through m edges for every bit so its O(30M). Your code gets accepted(1900ms) if you start with 29th bit.

Bad luck!

for E consider the following test case

2 4

1278

6935

7878

output->

2

3 4 1

3 4 1

I wanted to ask whether the output is correct? that is can we repeat a particular segment?

UPD-> Got it, read the announcement now:)Editorial?

Can somebody please explain me why I didn't get any rating for participation in this contest?

I don't want to create a new post, so desperately hoping my comment here will get some attention.

I'm a newbie in competitive programming and just recently joined Codeforces. I hoped to start acquiring rating and earning experience by participating in Div.3 contests. Even if this contest (#764) is the second contest I'm participating (the first one was Hello 2022 where I solved just one problem), I assumed I'm qualified to be rated in Div.3 contests. However, this one didn't affect my rating at all.

Please, help me understand the rules of the system!

Ratings haven't been updated yet. Normally in div3 rounds, there is a 12-hour hacking phase. When the hacking phase is done, ratings will be updated in a couple of hours.

Thank you! I didn't know that rating got updated within couples hours after the contest.

you can always wait until the record of this contest appears in your contest history.

Problem E, can anybody tell what might be the error in my approach or code? what iam doing is.. i store 2 digit numbers and 3 digit numbers from n phone numbers, because we can segment into substrings of length 2 and 3 if answer is possible. now i took dp[i][j] , where i=[1,n] and j=[0,1]. dp[i][0] means last segment is of length 2, and we have seen till i characters in s. dp[i][0]=dp[i-2][0]||dp[i-2][1] if substring s(i-1,i) present in any n phone numbers. similarly dp[i][1] means last segment is of length 3, and we have seen till i characters in s. dp[i][1]=dp[i-3][0]||dp[i-3][1], if substring s(i-3,i) present in any phone numbers. getting error in tc2. code link: https://codeforces.cc/contest/1624/submission/142327596

Edit: got it, approach is right,but while solving , i stored 2 digit and 3 digit numbers as integers because of which some cases where 0 is present might be failing. i modified and stored 2 digit and 3 digit numbers as strings only which solved the issue

I got wrong answer "wrong answer Jury has answer, but participant doesn't" in Problem E. I use greedy and kmp algorithm. I match target number as much as possible. Once match is one, i will backtrace one and rematch again. If it can't match target number or one of the segments is one, it will break and output "-1". My algorithm complexity would timed out. But is this algorithm is wrong? I try many tests and verify my answer is correct.

No, this is correct, you must have made a mistake somwhere.

I've done something very similar and it fails only on big tests (tle).

Okay, I overestimated your solution. To make up for my mistake here is a test where your solution is failing :).

1 1 10 abcxcdxdcx abcdcdcdcd

Thank you for your help :)

Still rating is not updated

it's system testing. I guess too many successful hacks.

Again! I turned into a zombie after solving 2 problems

can someone help me with my submission 142259904, it gives TLE although the time complexity is almost the same as the solution 142198142 I think.(newbie here) PLease correct me if I'm wrong

Are there any problems with the players ranked 212？Can anybody check it?

I saw someone was gonna stream the solution of these but I could not find it now, do you have that link?

https://www.youtube.com/watch?v=0SbJnUiSD9E&ab_channel=Harisamsharma

Is this a rating contest. If yes, then how much time will it take for codeforces to give ratings?

wait for rating and wait .....

I need to know why my rating is not increased. I am currently 1210 and i solved 3 problems of this contest. Is that normal?

Why this contest is unrated for me? Wasn't it rated for all participant under rating 1600?

Instead of killing your nerve cells in waiting you can always use CF predictor (it is quite accurate)

What is this?

Browser extension which predicts rating changes on contest standing page.

Extension for viewing predicted rating change .

Carrot rating predictorYou can add it as your chrome extension.

cf predictor was showing a rating change of +32 but in real I got +15 Sometimes its not so accurate

rating changes when??

after removing cheaters. Wait... :)

Hi,

I joined the contest yesterday. My first one :) It was really fun, thank you very much.

While the contest was running I was able to solve Part C and it went through. Even after the contest it was green. Now one night after the contest my rating got removed? Is that a bug? Duration was like 2.2 — 2.5s, not that great I know but limit was 3s.

where can I find the solutions ?

When the editorial publishes, you will find the solutions on the problem page at the bottom right corner!

I know this isn't the intended solution of C, but can someone explain why this wouldn't work?

My Submission (WA on 5).

InputExpected OutputYour OutputCommentWe already have $$$[1, 5, 6, 7, 8]$$$.

We need to create $$$[2, 3, 4]$$$ from $$$[1, 6, 8]$$$.

We can definitely create $$$[3, 4]$$$ from $$$[6, 8]$$$.

But, you won't be able to create the remaining $$$2$$$.

How can I get the solutions?

When the editorial publishes, you will find the solutions on the problem page at the bottom right corner! You can also check other solutions after your thinking the problem.

Pls can somebody tell why this solution 142368820 is not giving TLE and what is its time complexity. IMO its time complexity is greater than O(n*m*m) (not sure). Thanks.

Time limit of Problem G is not java friendly ;(

This was my submission — 142369596 for 1624E - Masha-forgetful.

The checker log gives me the following message:

`wrong answer Integer parameter [name=r] equals to 4, violates the range [1, 2] (test case 249)`

Does this mean that my code prints r = 4 for some line while the length of the number is 2? (correct me if I'm wrong)

I can't seem to find my mistake. Any help would be appreciated!

No, it doesn't.

You forgot to print the number of segments used if $$$m$$$ is 2 or 3.

For example, one failing test case can be.

A possible answer is

but your code would produce

So, in the original testcase, the jury thinks that you're going to print $$$L$$$ segments, while you actually intended to print just one. Hence the

WA.Oops I missed that. Thank you very much!

This is my submission for problem E 142402622. The checker log gives the message

`wrong answer Answer phone is not "s" (test case 532)`

. I am not able to understand the meaning of this message and also not able to find the bug in my code. Could somebody please help?InputA Valid OutputYour OutputCommentsSubstring $$$[2,4]$$$ in the second string is $$$[000]$$$ while the required phone number has a prefix $$$[001]$$$

Thank you very much! I did a silly mistake!!

MikeMirzayanov my submission 142240970 coincides with 142233988 from bernardo_amorim, after looking at his code I think it was triggered because of the main, he have a similar style to mine and this problem is a classical 15 lines problem, I do not know this guy and I did not cheat in any way!!. Please remove the cheating accusation. I saw that he complained too here https://codeforces.cc/blog/entry/8790?#comment-876676.

where are the editorials for this contest. if they are there, if provide one. It will help people like me who is doing cp alone.

The hardest problem of this round: Figuring out what the pun in problem F's name is.

I was like: "Interac-dive? But the problem has got nothing to do with diving"

It's probably 'Interac-div-e' where 'div' stands for the division operation.

The girl on the bottom-left looks cute!

Agree with you :)

I don't understand why my code is wrong? link: https://codeforces.cc/contest/1624/submission/142618684