Hello, Codeforces!
I'm very glad to invite you to the first Cuban round Codeforces Round #659 (Div. 1) and Codeforces Round #659 (Div. 2) which will take place on Jul/24/2020 17:35 (Moscow time).
All problems in this round were created and prepared by marX, gilcu3, dcordb, jcg and me. We tried to make them interesting and diverse and hope that you will enjoy them!
You will be given 2 hours to solve 6 problems in both divisions, and we highly encourage you to read all of them :)
We would like to thank:
antontrygubO_o for amazing coordination of this round.
Um_nik, gamegame, ffao, eatmore, isaf27, balbit, Tlatoani, prabowo, Kuroni, hugopm, hu_tao, qlf9, faremy, golions for testing the problems and providing invaluable feedback.
MikeMirzayanov for providing Codeforces and Polygon platforms.
The score distribution will be announced shortly before the round (or earlier).
UPD: Here is the score distribution:
Div2: 500 — (500 + 750) — 1750 — 1750 — 2500 — 2500
Div1: 1000 — 1000 — 1750 — 1750 — 2000 — 2250
Good luck and have fun!
UPD: The editorial is ready Editorial
UPD: Congratulations to the winners!
Especially for tourist, Benq and Radewoosh who solved all the problems!!!
Div. 1:
Div. 2:
I hope for an interesting first cuban round :)
This round was not at all interesting.
hoping for no another interesting round like that.
It looks like someone forgot to mention that the contest was for Russian 5th to 8th graders. (No offence intended).
Anyways, this just makes it more exciting. Thanks for this round.
New round to avoid : Cuban Round
It became really interesting when I tried submitting the first problem and not to mention, when I started reading Problem B.
I became depressed after reading problem A & B also C
C was the real saviour
I was like A will never left me but today A left me.
O
Who is this Koa the Koala and why does she want to cross the shore?
Google's first result for "can koala swim?"
"Koalas drown in swimming pools when they are looking for water to drink. Although koalas can swim, if there are no assisted ways for a koala to climb out they will eventually drown."
did someone forget this was a coding round and not a reading round?
why is everyone downvoting because of the contest... :(
I started reading the first problem , and before i could even see the test cases , the round was over...
I suggest improving your reading comprehension before trying a competition. Good Luck!
I would rather do Eva than doing these problems
Score for B1 should be more than C. Currently B1 score is significantly low than that of C. And every one knows the level of these 2 questions.
The contest is in general more difficult than other Div. 2 contests; but yes, we definitely should look into the reason that problem B1 and C had such a contrast between difficulty and score.
After seeing too many Red coders as testers, we should prepare ourself for such a lengthy, disordered(e.g. problem B and C order) round.
Shitty memes incoming!!!!!!
.....
Lol you are from Havana University
What's lol about that?
what is cuban round ?
The authors are from Cuba.
oh.
This comment is downvoted. So i can assume my answer is wrong. People who are downvoting can you please tell me what is the correct answer? I really want to know.
The authors are from Kuban
No, the authors are from Cuba
No. the authors are from Kuba.
a bad round
As a tester, I finally get to make one of these posts.
[gets contribution]
[gets contribution]
xD
exit(0);
[gets contribution
lol
as a participant, your tester post sucks
This comment was downvoted by trolls
Come with me sir, we're gonna find out who tf asked.
Last time with this much red coders, we saw something dangerous.
we should have seen it coming
When last contest is rated and you want another contest to participate in and you are happy and confused at the same time!!!:
What is the story behind this image btw?
I put this image, cause there is a happinnes and confusion at the same time, like my feelings
okay
Everyone using this platform should know about him. :P He is MikeMirzayanov
You might have known the story now.
Will it be IQ test round? I like IQ tests.
As a tester, I can confirm you need a brain to solve these problems.
Writing 'As a tester' was really important for that confirmation :p
hu_tao How much problems did he reject this time xD :)
I'm pretty sure he rejected ~15 problems
After the contest can we have the rejected problems for practice?
No, they are recycled to be rejected in next contest again.
yes
After the contest, I was convinced that I have no brain :(
Man...I should have read this before the contest:(
As a human being, I can confirm that everyone has a brain smh.
no
As a tester, I’m glad I tested.
Seems like we are again going to have round 657 with less than few hundreds people solving C
[Enjoy your contribution] .
As a participant, I should've known what you were saying.
Now we know what happens when DEVIL himself wishes Good luck
There is an amazing team behind this contest. I'm looking forward to participate. Good rating everyone
As a non-tester, I'm glad that I'll be able to participate in it <(")
There was an attempt. Note-The comment I replied to had downvotes when I wrote the comment
So, how did the contest go for you ? XD
My ratings didn't go down, so it was good I guess :\
So happy
Still holding to this opinion after the contest? ¯_(ツ)_/¯
It's irony, the contest is so happy, it's like yesterday's contest.
Imagine getting back from retirement for a Cuban round, writers are all amazing. Looking forward to it, see you in the standings, altho I prolly don't pass a,b :). Удачи
This round makes me want to retire.
The Div1 part of the contest is shown in Calendar on saturday, too. I think this is not intentionally.
We still remember the last red round
After a long time Um_nik became as a tester. I hope this round will be great.
Fake news
It's a good opportunity for me to become PUPIL again :)
Or maybe become Expert B)
well, you don't bacame pupil :)
Congratulations! :)
Yes, i have heard of Cuban. Krasnodar is the best city.
No no no, not that Cuban. This Cuba
Why do you downvoting me? That was just a joke. Of course i know what cuban means. Why do you upvoting some captain obviousness who didn't get the joke and tried to "explain" me what Cuban is?
Some people just don't get sarcasm, man. I upvoted you and am glad that your comment is now receiving upvotes too.
.
Count the number of peaks in the rating graph of dcordb
WA on pretest 2
Count the number of peaks in the rating graph of ruban
Time Limit Exceeded on pretest 6
I think if you try to participate in the rounds that are produced in Cuba, you will have a gradient descent
I wish this was div2A instead of the real one.
As a participant, I am all scared looking at so many Reds
You were right.
You can do it! who want to become green, blue, ...
Who can do what?
you can become red
Alright.
Ok
shut up!!
Your DP says that you stopped caring a long time ago then why is it bothering you. Everything gonna be alright!
Very excited for my first contest! I have covered all the basic data structures in past 1 month . Now I am looking to take part more frequently . Any suggestions on how to be consistent and any further resources ??
Bad Luck ! You chose the wrong contest.
https://www.youtube.com/watch?v=dQw4w9WgXcQ This link is to an excellent youtube video. He covers a lot of things that I believe every competitive programmer should learn, be sure to check it out!
paid attention to how many dislikes there were?
The video is great bro, you're an absolute idiot if you think its bad.
I don't think he's bad. Regarding your categoricalness, I think the following: that you are over 40 years old, or you are from Cuba
In codeforces round When I submit the problem and it gets pretests passed in very first submission. Ooh that feelings can't explain in words. When I am writing this I am crying with smiling face
I think you haven't experience that feeling when you submitted it WA 10 times and the 11th time is got Pretest passed. Literally crying with smiling face.
That's true also
As a tester, I wish every participant good luck and high rating on this (very nice) round!
I Hope Cuban round will be as good as Cuban Cigar. :)
A very interesting score distribution!
score and difficulty level no match at all !
Perfectly balanced, as all things should be
Hmmmmmmmmmmmmm.
Huh...I didn't knew 666 is called the devil's number. What a coincidence :O
Now again
He should have waited for CF round #666.
How about we reserve CF Round #666 to be held on 13th November, 2020 (Friday the 13th) and ask Devil to hold it?
Only 7 contest in 4 month? I will lose my sanity
Maybe we can try "some" educational rounds!
Round 666 is coming up :)
lets make it 666 again
The cursed contest.
Wait, do we have subtasks in div2(asking because of the score distribution/and that it isn't mentioned)
I suppose because in the format given like (750 + 750 ) suggests so
It is written there will be 6 problems, so I think (500+750) => B1 and B2, B1 being subtask:)
I think that you should also author the seventh round following this one.
hello darkness, my old friend
Will Tourist top the tables today??
Yeah.
Hope,this first cuban round will be very interesting :D
It wasnt :(
Interesting score distribution! GL & HF!
ups
Insha Allah, would be able to cross 1500 today!!.
A sub-task for B? This is going to be wild.
Difficulty 1750, hope I could solve them.
My schedule this summer,
EAT -> PARTICIPATE IN CF CONTEST -> READ EDITORIAL -> SLEEP
REPEAT
ohh...which country are you living here it is rainy !!
Same!
CF has keeping me sane for the summer
you forget one part: LOSE RATING
good luck to you !!!
MikeMirzayanov Just curious to ask when running 2 contests (Div1 and Div2) you use the same server fot both the contests or 2 different servers (with Div1 having less specification server because of load)
awaiting a great round
Another Anton Round!
tourist registered for the contest, I think he'll take his position today!
i am having 1940 rating. and I don't want it to decrease for next 2 month so just wondering if someone can tell me how much maximum rank can ensure me 0 decrease? like any idea? is around 1000 fine
If you tell me, in detail, why you want your rating to stay at 1940 for next 2 month, I will seriously consider helping you. thanks
There is a way:copy code and get "skipped".But your account might be blocked
I am very glad to accept your invitation. I would also like to thank everyone who contributes to the making of this contest. Good luck and have fun!
The meme is as hard to understand as solving Div.1F
You mean div2A?
incase anyone didn't get the meme carefully read the second line of the announcement!
I'm very glad to invite you to the first Cuban round Codeforces Round #659 (Div. 1) and Codeforces Round #659 (Div. 2) which will take place on Friday, July 24, 2020 at 20:35UTC+6.
The new strategy to decrease server load is working!
Seems Red Coders doesn't think of beginner coders !!
Again a Div1 type contest :(
The worst contest I've seen and thanks for 2-hour-long terrible time.
Applicable to Div1 participants after solving A and B as well
Glad I didn't submit even a single code!
div2 feels like div1 :(
Last contest was such a class. Back to unnecessary complicated questions. All problem setters should learn something from 1-gon and Ashishgup.
I know I am going to get downvoted to hell, but needed to get the truth out.
+1,I love Monogon's problem and this contest is quite bad.
Some of Ehab's math problem are also good.
Second that! mohammedehab2002 is my favourite setter, and 1-gon is close second!
Since ^ comment is getting some attention, I want to add if we can come up with a way to voice our opinion about the round? Maybe upvote/downvote a contest or individual problems?
I am not against harder problems but there's a difference between good kind of hard and bad kind of hard.
UPD: Figured what was wrong on pretest 3. Sorry for spreading hate.
I'm a newbie. I didn't even understand the questions.
It's Okay. Nobody did.
my confidence is indirectly proportional to length of questions
My confidence is directly proportional to length of questions. I cannot solve and more people cannot solve.
not being able to solve take a toll on confidence
Reading div2 B1-B2 problems is more difficult than doing a plank.
Worst score distribution i have ever seen in Codeforces!!!
Div-2 contest doesnt seem to a div-2 type.No balance in problems at all.
Seems like that was the case for Div1 as well
Looks like Devil's plan at work here.
Plan of unexpected statements!
If the frequencies of these types of contest increases, it will inculcate the feeling of fear in beginners' mind towards competitive coding. No offense to anyone.
you asked for harder questions, so there you go :P
who the hell asked for it? <(")
Me after reading Div2 A, B1, B2:
Not worth complaining about the difficulty of the problems. Just improve next time and learn from your mistakes.
Do not trust someone whose account name is Devil
Kudos to all problem setters and team. What a contest. I realized that need to learn more practice more.
There are better ways to learn that fact.
start doing div1 then
i was able to solve the first one phewwww!
That's an achievement. Not kidding at all. You should be proud of yourself. I am unable to figure out where my code is failing for past one hour.
Ok, so here it is: link
Thanks man, but don't want to go this way. Better to have so submissions :-)
However the contest is. It is rated or unrated you must not share any solution during contest.
Nice story bro
Try this test case: 6 5 2 4 5 2 6
Very nice! My code is failing on this. Great job man!
Well I shouldn't consider it as an achievement because I have long way to go
Yes..me too...really ..pheeewwwwww
[Deleted]
Another difficulty staircases
Yeah, and I bet most of users solved problem B by guessing solution, not even having proof...
You'd bet that but you'd be wrong. If you actually could guess the solution, then it wasn't too hard to prove three or four cases.
In my opinion
I thought WA on pretest 2 sucks the most, but today I learnt, WA on pretest 3 sucks the most. Getting WA on pretest 3 in C :(
Nvm I removed an if case and it worked. :)
tourist returns to #1 !!!
(Oh, now it won't be broken.)
Except tourist himself.
Wait... Has Codeforces increased the difficulty of Div.2???
Div2A seems easy (a bit long however), works fine in my testing, but what is in that pretest 2?! Desperate for the editorial!
The language of Div.2 B1 was very bad. :(
I happy for tourist, he will return to it's normal position :) tourist
You should not add someone's handle unnecessarily
1-gon's Div.1 contest was MUCH better than today's contest. problems were unbalanced and Div.1 B was terrible problem...
Why do you think div 1 B was a terrible problem?
wtf? Div1B was a really nice problem imo.
Div 1B was pretty interesting in my opinion.
If Div1B was terrible, then please come and read Div2B1 (and B2).
TFW you not only fail to solve div1A, but can't understand why your solution to div1A is wrong.
Same! But I suppose I'm somewhat relieved/surprised to see a grandmaster say this! No offense ofc.
I still have no idea how to solve that problem, although something did pass pretests eventually. Had to move to more trivial problems like E instead :)
Go through all letters in increasing order. For each letter, get the minimum of letters that this letter needs to be converted to (lets aabb — xyxy: a converts to x and y, take the smaller one), then convert all the letters (a) to the lexicographically smaller one (x or y) (note you need to skip letters that are already ok).
What do you mean?
For that one it's
aabb bbbb xbxb xyxy
(according to my code + my manual attempt)
So the transitive reduction of a DAG isn't a subgraph?
Transitive reduction requires that there is a path from a to b if and only if there was a path from a to b in the original graph. This problem doesn't have the "only if" requirement.
24 (Dadgum.)
I thought that adding more edges can't hurt the number of operations...
Acc. to my code, aabb->xxbb->xxxx->xyxy
Yes! Me too. WA on pretest 3...
I also had a wrong pretest 3 at first and then I implemented a (in my mind) equal solution in a different and it worked lol (solution is back down). What I did it first was: go through letters in increasing order, if a letter is not good then convert it to a letter that also exists and needs to be converted to the same letter (ignore if it's already good, convert directly only if there are no such cases). Idk why this approach is any different than my other, could be just a program error since it's a bit more complex.
I spent two whole hours battling pretest 3, only to no avail.
It feels like the contest is based on some olympiad for students of 5-8 grades
at least there were interesting problems
PTSD intensifies
what do u mean. is there similar tasks or what?
That round was extremely tough for a Div2, people were joking about how skilled Russian 5-8 grade students must be to solve it. Now this round has somehow managed to be even tougher.
Normal Div2 round: Kalm
some olympiad for students of 5-8 grades: Panik!
I have a strange question. Who is Koa the Koala?
And why is it ruining my div2?
the devil himself.
Devil ORZ
Kind request to stop such bullshit Div2
I don't think anyone is listening.
lol, there was a duplicate test case in problem B. ~~~~~ 5 2 3 1 2 3 2 2 ~~~~~
I was unable to reach sample test case left the problem after reading the problem statement only.
Then how about the REAL CF Round #659 div1? Say, div0?
No, In div1, we are crowd in div1 standing!
I wish this round to be magically unrated....
bad problems , bad statements . didn't enjoyed this contest .
This contest is not worth 2 hours of 20k Div-2 participants.
thanks antontrygubO_o for amazing coordination of this round.
Now I am wondering about him antontrygubO_o. He didn't even realize about the problem statement of $$$Div2B$$$. F.
Anybody else having had problems opening the page of their room?
Devil $$$2B$$$, Devil $$$1C$$$.
Devil Statement, Devil difficulty.
Can someone explain why this idea gives WA3 in Div2-C / Div1-A?
If any letter needs to be changed to an alphabetically smaller one, output -1.
Otherwise, build a directed graph (e.g. a matrix) where
graph[a][b] = 1
iff we need to change a to b at least one index, a<b.Then, drop the unnecessary edges. An edge a->b is unnecessary iff there is another path with more nodes that connects a and b. Note that the path will contain strictly shorter (in the alphabetic sense) edges, so we can start with an empty graph and add edges of alphabetic difference 1, 2, 3, ... 19, at each point checking that the letters are not already connected.
The answer is the number of edges in the final graph. I have no idea what I'm missing.
i did the same thing, WA on tc 3.
So on the test
AB
,DC
you will print 3, becauseA->B->C->D
, right?My answer is 2. The original graph does not contain a->b or c->d, and I only ever remove edges.
Edit: Okay, I see it. The entire problem is that I only remove edges. For example, in
aabb
->cdcd
the optimal solution is to turnaabb
->bbbb
and then two more operations. My solution prints 4 because it cannot add the edgea->b
.Ah ok,
AABB
CDCD
, the answer is 3, becauseAABB->CCBB->CCCC->CDCD
shouldn't it be 2? coz A -> C and B -> D ?
Got it
aabb cdcd
I did something weird, but it passed pretests somehow... basically ignore the fact that the graph is directed, answer = 20 — number of connected components.
this problem can be solved by a simple dfs finding number of vertices in every component.
infxx Can you please elucidate? I tried something similar but it didn't work. 87922305
The major difference I see is that you are making the graph undirected(right?). Why so?
Norrius What is the fix for this approach?
It's really easy: just find the sizes of (undirected) connected components with DFS/BFS, let's say they are $$$c_1, ..., c_k$$$. Then the answer is $$$\sum_i (c_i - 1)$$$, because there is some spanning tree in each of the components, and you know how many edges a tree has.
I don't quite get the intuition behind this fix? Like, how did you get to this? And why does that work? I get this idea that we need to find the minimum spanning tree(taking all edges' weight as 1) for our original directed graph(but there's an issue in it). But I do not get it that how making the graph undirected solves our issue?
well
That was different
each participant's state during contest was exactly like your profile pic ...
For Problem D in div 2., can we solve the problem for each bit independently?
Edit: NVM I just proved it to my self
Proof: if you have an odd number of bits, set at a particular position for all numbers in the array, the winner will be decided in this round Other wise you have an even number of bits, and your opponent will get the same result as you for that bit position.
After giving this contest I feel demotivated a lot.But, also excited like Shoyo Hinata.I have to train harder.Thats the lesson of this contest.Move ON.
1384B1 - Koa and the Beach (Easy Version) is my new favorit of shittiest problem statement ever.
Pictures would have helped.
And some other story, mayby one which makes some sense or none at all... I needed to ask twice before understanding that the girl cannot swim if the water is to deep. How can somebody come up with such wired picture? This is simply the opposite of logic. I mean, why?
Yeah, adding "More formally, " just made it harder to understand.
Too time-consuming when reading Div2B problem :))
So laughy to hear, when problems are nice in easy contest, and bad in hard contets. LOL. bad != hard.
Problems were cute && hard, div2 guys just cant solve them and find it is bad && want unrated — it is so stupid && two-faces
The problems were pretty good, it's just the fact that C was a lot easier than B in div2 (You can look by yourself). I find B as a very nice problem, but it took me more than 15 minutes to understand the statement.
Yeah, you are right. I am just angry about people who wrote that problems were bad and shitty
I understood you. I'm also finding this annoying. If you understand the statements of the problems, they are enjoyable (in my opinion). I just hope that in the future, the authors will write the statements more concisely and the problems will go in increasing difficulty.
Finally a really accurated opinion. I left this community two years ago, when i retired from regionals. Now two years without basically coding at all, i return for the first cuban round, and i managed to solve A, B1, C and get a positive score given by the fact that when i retired there were approx 4000-6000 participants per round in Div2. I found out that now there are nearly 20k, but 16k of them at least, only know to cry about problems that a retired person can solve with 0 warn up, thanks so much codeforces, for leaving me this bad memory as about the first round written by my country.
To the person who i'm replying, really my most sincere congratulation, for not being one of those crying babies. Thanks!
Anyone else with wrong answer on pretest 3 in C? What was it??? :/
me :(
I guess that was the first real test with many test cases. Test 2 contained some corner cases I think
Me too. T.T
Same here. Not sure what it was, but I know I did not handle a case like: aabb cdcd (Answer should be 3: converting a->b, then b->c and b->d)
C was DSU or DFS/BFS/ Spanning Tree loved solving it <3;
It was easy greedy. You overkilled it. Can you briefly say about dsu solution?
I converted all conversions into the form of A to B in a directed graph if at the end of all conversions character A was required to be converted into B . Now if A>B then always answer is "-1" , this is self explanatory. Now I added all the edges to the graph , if A-->B , Now any successful completion or conversion can can be done efficiently if for every pair A to B to which conversion is required we follow exactly one path and no more than that , this conversion can be seen as path from node A to node B in the graph. Now for a connected components if we want minimum paths to follow and connect all characters which are need to be converted into one path, we need to find just a spanning tree of the obtained graph. Thus we can obtain it easily using any technique like BFS/DFS/DSU . Thus it was a good problem of Spanning tree, I think. May be I over-killed it.
Consider the small case graph where aab-->bcc A->B , B->C, A->C. since the spanning tree of above graph will be A->B->C , which is minimum possible answer for this conversion process.
Wow, that's an elegant approach. Thank you :)
Yours Welcome , What is the greedy approach by the way.
Created a directed graph.
Then I traversed from the character 'a'. Assuming our current character is 'C'th.
Using one operation, I changed all character 'C' to the minimal character over all his sons, and now add the new childs to the minimal character.
AM_I_Learning What is wrong with my solution 87922305?
Very interesting approach, thanks for sharing.
Can you please share your approach
replied above you may check it!
Time for antontrygubO_o to resign. What a disaster.
problem b is very complicated to understand. This type of problem shouldn't be in div2
In my opinion Div 2 C (Div 1 A) was waaaaaaaay easier than Div 2 B.
New type of contest to avoid : Cuban Round
derji v kurse, zachem ty napisal ob etom 100 kommentov lol?