Hi Codeforces!
GlowCheese, DeMen100ns, SPyofgame and I are delighted to invite you to participate in Codeforces Round #812 (Div. 2).
- Start time: Aug/06/2022 17:35 (Moscow time)
- Duration: 120 minutes.
- Number of tasks: 6, including at least one interactive problem. Make sure to read this blog and familiarize yourself with these types of problem before the round!
This contest is brought to you by:
Special thanks to:
- errorgorn for wonderful coordination by rejecting 50+ problems from me, all for a better Codeforces.
- KAN for translating our statements.
- Vip testers: satyam343, tfg.
- The great great coordinators that tested our round: antontrygubO_o, 74TrAkToR.
- DeMen100ns for providing amazing problems, which helped us a lot.
- GlowCheese and SPyofgame for their great effort, for pointing out mistakes in the original intended solutions.
- _FireGhost_ and neko_nyaaaaaaaaaaaaaaaaa for spending time helping us while they have to organize VNOI CUP 2022.
- Our testers: thenymphsofdelphi, neko_nyaaaaaaaaaaaaaaaaa, generic_placeholder_name, Andreasyan, PurpleCrayon, tfg, BucketPotato, Vladithur, _FireGhost_, LetterC67, satyam343, 18o3, 1DWalker, vangtrangtan, haong, Megumin2006, dinhsangBKA, QuangBuiCPP, Etherite, nyagami, Hehe, sonoobIdie, hydroshiba, LeCaToX, makyuri.ami.
- MikeMirzayanov for amazing platforms Codeforces and Polygon.
- Last but not least, you for your participation and being WA, then dropping at least one color :P
The score distribution is 500-1000-1750-2000-2500-3000
Hope to see you in final standings!
UPD: We have a small gift for a Vietnamese participant who have the highest score, so if it is you, please DM me after contest. Good luck everybody!
UPD2: Editorial
UPD3: Congratulations to the winners!
Div.2:
Div.1 + 2:
As an author, love you SPyofgame
As a coauthor, love you SPyofgame
As a stupidest author, love you SPyofgame
As a tester, love you SPyofgame
As a tester, love you SPyofgame
As a participant, love you SPyofgame
As a participant, love you SPyofgame
As a tester, love you SPyofgame (though i don't know why i have to love you) =))))))
As a participant, love you SPyofgame
As a participant, love you SPyofgame
As a participant, love you SPyofgame
As a participant, love you SPyofgame
As a participant, love you SPyofgame
As a master, love you SPyofgame
As a candidate master, love you SPyofgame
As a tester, love you SPyofgame
A curious mind wants to know what happened!
Same question )
Nothing happened actually, it seems like they are friends and just like to troll each other. It was Codeforces Round 779 (Div. 2) btw.
As a participant, love you SPyofgame
As a participant:
nothing
As a fan of idol thanhchauns2, I'm really looking forward to participating and solving his own contest. Hope everyone have a great time!
problems are great!
or i will shave my hair
I wish every tester from now own takes this kind of oath
proceeds to get a ocean full of shaved heads
but not this time, trust me
tester này nghiện ma túy
who ask
sorry to say that, but I expect to see you with shaved hair
And no, in generall contest was good and most problems are really really great, but look at
Ig it's not OK that I spent more time on A than on B/C/D?
CMON I SOLVED D FASTER THAN A
I think it is the explanation, haha.
Curious to ask, explanation to what?
P.s. No negative in this comment, but I really didn't get, sorry xd
I think what make problem A harder than usual is the explanation. If we remove it maybe you will find it easier.
well, after I've read comments I understood one thing
It's my guilt that I didn't read that either X or Y is 0
I'm very very sory, problem A was great, and not hard at all, I just should've read statements properly :)
now that makes sense, i can't imagine an expert struggling to solve d2a.
Xd, I'm sorry
I understood it in way that all coordinates are (x,y) not necessarily zero
And actually, if I solved A at the time, an CM, not Expert :'( :noo:
better luck next contest (‾◡◝)
Thanks!
Cannot disagree.
ᓚᘏᗢ
As a tester, I wish u guys could gain the rating :3
Finally your contest after 1 year,
Excited to see and all the everyone!!
As a tester, hope you guys to enjoy this round.
As a weeb, I recommend you guys Youzitsu (Light Novel) and Gabriel Dropout (Anime/Manga)
As a tester, I
hatelove DeMen100nshydroshiba orz
As the biggest fan of DeMen100ns and SPyofgame, hydroshiba orz
...I'll give you guys a chance to fill the rest of this sentence
...give hydroshiba contribution
... amogus
..who tested?
Intentionally skipped testing this round, hope this one will be as good as previous one
I unintentionally became master...
it will still be rated for you because you registered before becoming master xDD
The white text is painfully obvious on mobile
My best effort in this project is breathing instead of making instant-rejected problems (")>
Finally your round, obviously I will take part in it
amogus
orz
why this announcement is published 6 weeks ago?
Probably because that's when it was announced? It was only added to the Home page now because it's the next contest.
There are three other contests scheduled that should also be added to the Home page when they're up next.
I saved it in a draft, only published a few days ago.
nice :>
As a tester, i worked with authors who are talented high school, college students, they had to make a lot of efforts to prepare problemset during months, some problems were rejected or removed to have the best problemset for contestants. So no matter what you feel about this round, plz upvote this contest to encourage young Vietnamese CP-ers to contribute global CP community. Finally, let's enjoy our problems and hope all you guy get good ranking.
yeah, you are right. Everyone who has made efforts to this contest deserve encouragement!
By the way, the kitty on the promotional picture is really cute (>w<)
Picture looks really good,hope it will be a nice round :)
I hope that C, D will not be as difficult as in the previous contest
Hope I can reach Master after this round! Good luck to everyone!
Seems like nobody notice that our coauthor, DeMen100ns has two colors in the announcement.
Some of us noticed but I guess nobody thought it's important enough to be written in the comments lol
Lol, okay.
Ngl, I legit didn't notice it.
Hope everyone have fun!
Most colourful blog I've seen in a while :3
Watch as people upvote me just because I am a GM
Watch as people downvote me just because I am a Pupil
watch as people do nothing, just because i am somewhere in between ;)
...or not
Wish I can solve at least one problem!
good luck
Good luck! love you SPyofgame
Again a contest with a huge gap between B and C :(
i would personally prefer two minutes later, but ok
This feels so real, I'm already afraid of not being able to make C, my friend
Good thing that this round was pretty balanced tho. I can solve A, B, C yay :D
Is this rated for me? Up to 2100 or up to 1900
Up to 2100.
C 1750 looks scary :(
I will try to become Expert in this contest!
I will try to become Expert in the next contest but won't shave my hairs! :)
According to the points distribution, I guess C is going to be a good question. So what do u think ?
Same
I will become specialist this contest!!!
nice you did it!
Good luck for everyone ❤(✿◕‿◕✿)❤
As a participant, I wish myself good luck in advance
One of the authors is in a really bad health situation right now. To all participants, please shows your respect to him by solving as many problems as you can, we all want him to overcome as soon as possible.
| Last but not least, you for your participation and being WA, then dropping at least one color :P
B-but we can't drop any more colors
Pros and cons of being a newb
I guess the interactive problem is problem C because it has 1750 points :) Is my thinking correct or not ?
As far as I know, ABC are never interactive since they only should require basic data structures and math knowledge sometimes (and their statement should be clear to everybody), the interactive problem will probably be D or F (my opinion :)), it's just because authors probably came up with this C, but they think it's a bit more difficult than usual, so they made it 1750
C was interactive sometimes, AB — never
What do you think about this ?
Ok, take my words back. When I tried to propose some interactive problems they said that it is too hard for D2B
My predictions came true lol
All the Best @EveryOne !!
Hope I become pupil in this contest
Deleted
Stuck on problem A :holyfuck:.
Fucking love this contest!!!!
same didn't notice either x or y is 0 always.
b and c are very good problems!
How does a blue coder solve f in 5 minutes? Jiangly didn't do it for 40 minutes.
Never judge a person by his color
But judge person's skill by his color.
but more skilled people do tend to have higher ratings in many cases (don't judge me, I've just been unlucky in many ways)
But it's still strange and unbelievable for anyone to solve a Div.2F in 5min.
can you give me handle of that person
Sorry I do suspect std leaks, but I have no ill intentions, I'm just speculating how he cheated.
Now I have almost enough proof that he is cheating. 1. He has two d and e submissions in the contest, with only a dozen seconds between them. 2. After passing the pretest of d, he submitted it again after a minute, and then wa2. This is obviously cheating by multiple people solving the problem at the same time, writers please check him. [user:thanhchauns2][user:DeMen100ns]
I agree with u but it's hard to check if he really cheated.
How to solve E?
2Sat, but you don't have to do a whole offline incremental SCC bs, instead you only need to maintain a DSU, check if the next restriction can be satisfied, if so change the matrix accordingly, otherwise ignore it.
In which order do you enumerate the restrictions?
We only iterate over the triangle above the diagonal, and we iterate from the first row to the last row with left to right in each row,
I see, thanks!
Video Solution for Problem C.
Hi,
I solved problem C at 1:14:31. But later i saw the code and felt that it might fail system testing as i used int instead of long at one place so i submitted again at 1:47:33 and as of now both are showing pretest passed. But i am getting points according to the 2nd attempt. If after system testing my 1st accepted solution does not fail so will i get score according to my 1st submission or 2nd submission?
During system testing, your first submission will be skipped and your second submission will be considered. Also you'll lose extra 50 points for resubmission.
ok thanks,
Due to unnecessary resubmission i lost around 280 points today.
I wouldn't consider it unnecessary if you personally had doubts about your solution. If you couldn't assure yourself that it would pass, then it would have been risky not to resubmit, since you would have lost a lot more points if it failed. Better to resubmit early than to wait until it gets hacked, or worse, until it fails system testing.
I think the real lesson is that you should really examine your code carefully before the first submission, and that if you have some doubts later on, you should think carefully about whether such concerns could actually prevent acceptance. If you are unable to clear such concerns, then I think you should resubmit without regrets, even if you realize after the contest that it was okay. Hindsight is 20/20, after all.
According to Codeforces Contest Rules
The rules are that a resubmission will incur the -50 penalty, regardless of whether the former would have passed system test or not. It's unfortunate, but that's how it is.
While there is no way to know for sure whether your first submission would have passed the system test now, I think int should be perfectly fine, because the largest square that needs to be considered is at most $$$2 (n - 1)$$$, which is well within int limits (unless you did something really crazy in your solution).
Amazing contest!
I am very happy because I solved 3 problems (A, B and C), unfortunately I solved them too late with 2 WA on pretest 2 verdicts. Does anybody know some real tips on how to solve problems faster and with less wrong submissions?
Great problems. (Specially D) How to solve D? Did anyone get AC using randomized algorithms, it would be great if someone could share some insights.
hint: you can determine the winner of the four using only 2 questions
but how
Let $$$a, b, c, d$$$ denote the four people. Query $$$a, c$$$. If we get zero, they are both losers as the winner would have more wins than the rest. Otherwise, if it is 1, then we ask $$$a, d$$$, and if the initial result was 2, then we ask $$$b, c$$$. Voila
Thanks, I was thinking about a wrong problem -.-
I thought that the labels of participants can be permutated (ie. 1 doesn't have to play 2 at the beginning)
Hmm... I think I have done it exactly the way you described. Don't know why it doesn't work. https://mirror.codeforces.com/contest/1713/submission/167297638
I guess I used too many memory by using long long...
Update: my approach was wrong
When you query four consecutive people, it only takes two queries to figure out who the winner is out of the four people. Maintain the array of winners from the last iteration, repeat the two queries per four people, until you have either two people, or a single person, then we know the winner. The number of queries used is the sum $$$2^{n-1} + 2^{n-3} + ... + 2^1 (or~2^0)$$$ and it is easy to see that this is below the query limits
Sad I didn't know what to do with this information, I figured out to find a winner among four people in 2 queries during the contest. Thanks
what is the observation for b? time is very tight for c can an o(n*k) solution pass main tests? where k is number of perfect numbers less than 2 * 1e5?
Current minimum element in the current subarray must be either at beginning or end of the current subarray.
oh thanks, so is it enough to check if arr[i] < arr[i — 1] && arr[i] < arr[i + 1] ?
No, you need to check the smallest element in the subarray.
For problem D the time limit was so tight using java it passed with C++ but cost me 20 minutes to debug in C++ since I don't use it much, couldn't you make a larger time limit for java? other than that the problems were really good.
As a Candidate master, I even can not solve C, and I got the worst standing since I sign in Codeforces... sad
C is worst problem in long time... we have to see simple but completly random stupid observation. Like christmas riddle for pre schoolers.
The fact that there always exists a square between $$$[n, 2n]$$$ is not something I would consider to be stupid at all... In fact, this is not only easily observed from thinking of small examples, but it's also easy to prove.
Similarly, the observation that $$$(a + b) = (a + i + b - i)$$$ is extremely trivial.
Neither of these are stupid. It does require some mathematical maturity to realize that these two observations would lead to an exact solution, but there is no randomness or stupidity involved here.
It's not a stupid observation. You can do strong induction and claim that if you can build array using numbers (0,i), for each 0<=i<=n, it's also possible to do so with numbers (0,n+1). This is due to the fact that there's at least one perfect square between i and 2*i. Now you have construction using the given prime for finding (n+1)-th element, and thus can fill the suffix (i,n+1) in increasing fashion, and due to induction hypothesis we can build the remaining part.
It's a cute problem imo.
I think both C&D are tricky, agree with that the observation of C is quite random. Again, sadly I didn't pass any of them... This time I may lose more than 150 rating ... :(
As a Specialist, I even can not solve B, and i got the worst standing since i sign in Codeforces... sad
:( I am too sad and I can not fall asleep. This contest exposed my problems, I'm an idiot in number theory
You are very good sir ! I am an idiot in everything ;((((((. I think I will quit cp and hire at foodpanda after i get my bike fixed
First time I solved pD on div.2!
Has anyone Accepted the problem-D using Java? I have tried reusing array[1 << 15] but the TL seems too tight.
B is very similar to a USACO problem
I solved Air Cownditioning for fun a few days back and was able to solve it using that.
Sad for Python users — D was very difficult to complete within the time limit.
really sad
Really unfair!!!
The same goes for Java users. Even SecondThread had to switch to C++ to solve D.
what's wrong with this approach for D?
get winner of 1-2 pair, now we covered participants up to covered=2, then go iterating over next participants from covered+1 to covered*2. if someone won more matches then it's a winner for range from 1 to covered*2. now change covered=covered*2 and repeat until end.
somehow I get WA
Won't this need (2^n)-1 queries? That's more than the allowed threshold.
hm you are right.
anyway I get line for -1 handling so should got RE. will see tests of what I missed
2^n — 1 > 1/3 * 2^(n + 1)
Is the idea for $$$E$$$ correct? I got WA2.
Create graph with $$$n$$$ vertices. Iterate over all $$$i < j$$$ and if $$$a[i][j] < a[j][i]$$$ add edge with $$$xor = 1$$$, meaning, we have to swap either $$$i$$$ or $$$j$$$ cross, if $$$a[i][j] > a[j][i]$$$ add edge with $$$xor = 0$$$, meaning, we have to either swap both $$$i$$$ and $$$j$$$ cross, or not, if $$$a[i][j] = a[j][i]$$$, don't add edge.
All edges have time of appearing. We have to satisfy the greatest prefix of such edges. Let's do binary search. We fixed subgraph with times $$$< x$$$. We have to set to all vertices value 0 or 1, to satisfy all edges' xor. First set all vertices undefined. Iterate over vertices, if we see undefined, set to it any value and do dfs. Dfs only walks on available edges, if it sees undefined neighbour vertice, it sets correct value to it and goes to it. If it sees neighbour vertices, such that is doesn't satisfy edge's xor, then we can't satisfy this prefix of edges.
Furthermore, seems I solved $$$D$$$ in $$$\frac{1}{3} \cdot 2^n$$$ queries. What is expected to do with 2 times more queries?
I just tested your solution on the sample case and it took 5 queries to answer so I think your answer is NO.
Aw, yes, I had miscalulated)
Notice that you have to repeatedly do this process as after the greatest prefix and the first "unsatisfiable restriction" , we may still have restrictions that can be satisfied, so we would probably get a $$$O(mn) = O(n^3)$$$ solution
The optimal solution is not neccessaty formed as a prefix.It means you can choose "not add edge i" and "add edge (i+k)" at the same time.
167298607 why this got TLE ????
Maybe due to "cout.tie(0)"? I'm not sure about that but any other's code doesn't have this line, I can only see "cin.tie(0)".
167281131
yes, I am also getting TLE without any good reason also getting WA and I have compared my soln with others who got ac and the soln are the same.
endl may cause it . try '\n' instead
I have probably used all of my luck for the next few months:
Wow xD
I loved this contest!
D was reallllly difficult to complete within the time limit for Python user!!!!!!!!!!!!!!! It's unfair!!!, please rejudge it!!!
You know that the input and output in Python is quiet slow, even my submission is the same as the tutorial , also got TLE, really unfair!!
All the python user that pass the contest, the time is 1980ms+, quiet strict
sad, always python users have to wait to increase to the next tier because of the RLE or TLE questions which happens so frequently. It's always absurd optimisations to made it pass. My friend has been waiting one year for expert and he couldn't hit it again today because he TLEd on D and he got a -60 instead, he's 5 stars on codechef (almost 6 stars) and 2450 on LC
I really feel you
Thanks for understanding!! Always Python user are not be considered in the CP. in the future if I have the chance to hold a contest, I must set different time limit restrict for different programming language, hope one day it can make true
In leetcode yesterday I made 8 different TLE on O(26*10^5) algorithms.Top down was giving MLE, bottom up with O(n) space was giving TLE as well,I was so surprised that I submitted the same code multiple times, then finally optimised it to O(26) space and it passed
Once, i took part in the LeetCode weekly contest and met the same thing, really sad
same bro i am also not able to find my mistake.
I'm not sure whether I understand your code correctly, but I think that in a scenario where res is not 0, you have to move 2 guys to next level, but you're moving only one
Yes its true, but this will make queries more than it's allowed
Take a look at Ticket 16001 from CF Stress for a counter example.
Thank you so much :)
167304705 why is this got TLE???
Logarithmic factor maybe??
my solution is (2^n*(log(2^n))
2^17=1e5
1e5*17=2e6
It must be enough for 2 seconds
I used a vector so I about saved the logarithmic factor. But my code still took ~800ms
e.erase(*it2);
You actually do n times linear operation on the array, each one works in O(n), so that is O(n^2)
In such algorithm it is better to copy the data in each round, then you copy n/2 elements into a new array, which makes all in all only n single element copy operations.
He is using sets..
Oups, didn't see that :/
what is wrong in my approach for problem B https://mirror.codeforces.com/contest/1713/submission/167293528 Approach inserted all the elements of the array into the set if the size of set is equal to the size of array this means that the all the permutations have cost greater or equal to array therefore YES
if not then i m checking the position of duplicate elements if all duplicate elements are adjacent this means the permutations of it has greater cost so the answer is yes otherwise the answer is no.
The NO-instances are not characterized by duplicate elements. But rather, they are characterized by the transition from decreasing to increasing. For example, the array [2, 1, 3] should output "NO" (it requires 4 operations, whereas [1, 2, 3] only requires 3 operations), even though there are no duplicates.
The issue with decreasing->increasing is that the two sides cannot be decremented at the same time once the center becomes 0, whereas a sorted/reverse-sorted/increasing->decreasing array can ensure that every operation hits all non-zero elements at once.
Thanks for the great contest :) !!!! Really loved all the problems and especially problem D And a great rating increment :)
Great problems. To be fair, I raged pretty hard about the time limit being way too tight on D (or there being way too many queries for an interactive problem), but other than that, great set :)
Screencast and solutions to A-D will be available on my youtube channel as soon as youtube finishes process it.
My logic is also the same as that of yours for D. Can you tell, what is my mistake? https://mirror.codeforces.com/contest/1713/submission/167288666
you made queries more than it's allowed. here is my submission in the last minute :) 167303592
You can check my queries are within the limit and I have also compared my solution with the one who got ac. find no such difference.
I have a doubt. In problem D, can we have 2 winners with same score? Did I miss something? Is it written anywhere that the winner's score is unique?
Consider the following example testcase: // [0, 0, 3, 3, 4, 1, 4, 2]
how can the players 1 and 2 have 0 wins if the play against each other in the 1st match?.. same as players 3 and 4
the pretest of B is shit!
Apparently so was your solution...
So was the other 100+ people who fsted in B.
Our solution are all shits.
Cool.
Didn't you realized that we can pass the pretest without using long long?
Didn't you realize that we can pass the system tests without using long longs?
In problem B there should have been a pretest where you needed to use long long int!
What? You don't need to use
long long int
?I easy solved it just with
int
s: 167240602.There is a solution where participants want to check if $$$\sum(max(0, a[i] - a[i-1]))$$$ is equal to $$$max(a[i])$$$. In fact, this is also a correct solution but it may require a $$$sum$$$ variable to store big number which can only fit $$$long \ long \ int$$$.
Balanced contest! Edit: I got expert back!
In problem D, if n=6, can we make 43 queries?
As, (2 ^ 7)/3 is around 42.67
ceil.
Then why it is giving me wrong answer on test 3? (Showing "Too many queries.")
https://mirror.codeforces.com/contest/1713/submission/167314753
It shows your first 43 queries. You probably make more.
I'm not sure but I think v.size() can be 1. (not 2)
Thanks !!
Yeah, v.size() will be equal to 1 when n is even, I didn't notice that. Got AC.
Yea since its ceil(2^n+1 / 3)
can someone tell me what is wrong with my B solution: https://mirror.codeforces.com/contest/1713/submission/167256508 . i've been trying to figure it out for the past 3 hours :)
Try n < 3
NOOOOOOO
your code for
prints two YES. Add a continue in the first if block
:(
The best contest of 2022! Orz thanhchauns2
Interesting E. I come up with it just after the contest finished:(
Any particular reason for C being of 1750 points?, I think it was not that hard and could have been of 1250 or 1500 points.
We expected it could be a hard D2C, and turned out to be really easy.
Really good questions. Thanks for the contest
Use greedy strategy, problem D could be solved within 2^(n-1) queries?
this submission https://mirror.codeforces.com/contest/1713/submission/167314546 assert queries * 2 less or equal 2^n
In problem D, In the test case given, can't 2 win the contest?
1 2 3 4 5 6 7 8
2 4 5 7
2 7
The final win array becomes = [0, 3, 0, 1, 1, 0, 2, 0] Can someone explain this.... any point I'm missing?
Yes, it can. But it gives the right answer 7, so it is accepted, even though its logic may be nonsense at all, i.e. the tester only cares about the final answer, rather than the logic behind.
wish there were stronger pretests :c
Expected Brood War themed problems.
thanhchauns2 didn't deliver.
As a consequence, I had a terrible performance. Lowest rating in almost 2 years :(
Unfortunately, all problems with Brood War theme is either saved or removed. The set is entirely different from the first. I feel so sorry about this.
Shit interactive problem