Hi again, Codeforces!
fishy15, flamestorm, ScarletS, saarang and I are glad to invite you to our second Constructiveforces round, Codeforces Round 836 (Div. 2), which will be held on Nov/25/2022 18:35 (Moscow time). The round will be rated for participants with rating lower than 2100.
Please note the unusual time!
We'd especially like to thank:
errorgorn and KAN, for their fantastic coordination and translation of the round!
MikeMirzayanov, for creating the amazing Codeforces and Polygon platforms!
Our testers dorijanlendvaj, PurpleCrayon, Ari, atodo, maomao90, prvocislo, nor, AlperenT, phattd, KrowSavcik, idk321, SlavicG, tenth, Nahian9696, Beacon, nyaruhodo, _Vanilla_, MEX1, Awesome3.14, JuanPabloAmezcua, anishde85, coder_sounak, jampm, Codula, ak2006, IAmTheHazard, and bakekaga for testing the round, catching any mistakes and providing lots of valuable feedback! We tried to get a large range of testers with different coding experiences so that everybody enjoys the round.
And you, the contestant, for taking part in and
hopefullyenjoying our contest!
You will have 2 hours to work on (and solve!) 6 problems. At most one of the problems will be interactive. Make sure to read this blog and familiarize yourself with these types of problems before the round! You are highly encouraged to read all the problems ;).
The scoring distribution is $$$500-1000-1500-1750-2250-3000$$$.
Good luck, and see you on the scoreboard!
UPD1: Thanks to ak2006 for making video editorials for some of the problems.
UPD2: Editorial is out!
UPD3: Congrats to the winners:
Div. 1 + 2:
- jiangly
- SSRS_
- kotatsugame [tie]
- Maksim1744 [tie]
- March_7th
Div. 2:
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
omg saarang round
Who is saarang ?
Who is saarang? 🤔 For the blind, 🦇 it is light. 💡 For the hungry 😣 , it is bread. 🍞 For the sick, 💉 it is the cure. ⚕️ For the sad 😢 , it is joy. 😂 For the poor 🚫💰 , it is the treasure; 💰 ⛏️ for the debtor ➖ 💰 , it is forgiveness. 🙏 For the face 😶 , it is the lips 👄
Who is saarang? 🤔 For the blind, 🦇 it is light. 💡 For the hungry 😣 , it is bread. 🍞 For the sick, 💉 it is the cure. ⚕️ For the sad 😢 , it is joy. 😂 For the poor 🚫💰 , it is the treasure; 💰 ⛏️ for the debtor ➖ 💰 , it is forgiveness. 🙏 For the face 😶 , it is the lips 👄
Who is saarang? 🤔 For the blind, 🦇 it is light. 💡 For the hungry 😣 , it is bread. 🍞 For the sick, 💉 it is the cure. ⚕️ For the sad 😢 , it is joy. 😂 For the poor 🚫💰 , it is the treasure; 💰 ⛏️ for the debtor ➖ 💰 , it is forgiveness. 🙏 For the face 😶 , it is the lips 👄
And for a 30 year old bachelor man?
omg saarang round
lol
OMG the moment has come. The best round ever is here. I really enjoyed a lot testing it, I'm very proud of y'all, you're great problemsetters ;) Hopefully you'll enjoy it as much as I did.
oh eem gee guysss!!!? how did saarang, a blue coder set a div2????⊙_⊙?? im literally shaking and crying in disbelief..!
oh eem gee guysss!!!? how did tibinyte, a Leafeon. coder set a div1????⊙_⊙?? im literally shaking and crying in disbelief..!
As a tester I can assure you that the problems have very good quality and are fun, you can't miss the opportunity to participate in this contest :)
As a tester, I'm sad because I can't participate
Among us
"At most one of the problems will be interactive." That feeling when the number of interactive problems is in the range of $$$[1,1]$$$
Did you find it?
you got me there
As a non non-tester I have not not tested and the problems were not not good.
As a tester I must say that one of the authors, namely ScarletS, has a huge skill issue when it comes to Codenames.
As an author I must say that one of the testers, namely AlperenT, has a huge skill issue when it comes to Codenames.
As a tester, I must say that atodo and AlperenT are the most based codenames spymasters ever.
Who's atodo?
my alt.
Are u that same Eliska who won silver in IMO?
The fan club grows...
prvocislo orz
AlperenT orz ヾ(≧ ▽ ≦)ゝ
As a tester, I must say you and suneeta are scammers >;(
prvocislo orzorzorz.
omg saarang round
When there are multiple problem setters, how do people decides who makes the announcement post and gets the contribution? Coin toss may be?
Battle Royale.
seemed like a joke but not.
omg indian round
As a tester, atodo didn't test.
As a tester, SlavicG didn't test.
manish.17 orz
Yes manish.17 orz indeed.
As a Tester please give me contribution.
thanks for the round
manish.17-fan-club
manish.17 Fanclub (2)
manish.17 fanclub(3)
I hope the constructiveforces part is a joke
This aged horribly. Round was still amazing though
We're honest people.
As a tester
The round clashes with Ecuador vs Netherlands, can it please be postponed?
The round does not clash with Ecuador vs Netherlands.
Ecuador vs Netherlands clashes with the round.
The world cup happens once every 4 years, contests happen 4 times a week
There have been 21 World Cups plus the current one, but there have only been 2 saarang rounds.
As a tester, this round was pretty fun to test. Hope the same holds for participants too!
Hope this round will make expert.
Note the unusual timing.
Okay
As a former POTUS, I sure hope this round is good.
djay24, hupender
codeforces gonna fail me in the endsems for sure :/
This is my first round . Good luck to everyone :)
Do you have any previous history in competitive programming? I mean do you participate on other websites?
Hope to get to Master.
Hey. Where did you practice from May 2021 to July 2022? I mean which website? You grew up very very fast.
Hi, I have solved around 400 problems on codeforces
I want to know how to improve more. what are the things I am doing wrong
Please check my profile- https://mirror.codeforces.com/profile/NamanKedia
how old are you?
Half of this 400 problems are problems with raiting 800. Try to solve more interesting and harder problems)
Please note that this contest (div 2) is start from an unusual time!
Yeah. It's written in bold in the announcement. No need to put useless comments down here.
Good luck to all participants of this round, hope to positive delta
Good luck everyone! Time to grind
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_Zaiback round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
SpeedforcesAB
SpeedforcesABCD
Samples are quite nice. ;)
Contest=Xor
Cool, unorthodox problems. Good job and thanks setters! Had fun.
I really hate constructing sequence problems, and no one can convince me that these types of problems are useful for competitive programming. They are basically hit or miss. Shit problems!
constructive problems require you to be creative
There was hardly any implementation before E ...
Constructive Round ^^
Div1Forces
Any hint for D?
Take the sum of the sequence to be $$$k^2n^2$$$ and then take the elements of the sequence to be $$$a, a+1, a+2, \dots, a+\frac n2 - 1$$$ along with $$$a+kn, a+kn-1, \dots, a+kn-\frac n2 + 1$$$ for some $$$a$$$. (I know I've added an extra term if $$$n$$$ is odd, feel free to remove it from either side) Now try to find ways to determine the value for $$$k$$$ and $$$a$$$.
Hint 2: Consider cases where $$$n$$$ is even and odd seperately.
Solution for D:
If $$$n$$$ is even:
Let $$$\Sigma a[i]=n^2$$$.
$$$a[]=...,n-2,n-1,n+1,n+2,...$$$.
Sample:
$$$n=6$$$
$$$a[]=3,4,5,7,8,9$$$
If $$$n$$$ is odd:
Let $$$\Sigma a[i]={(n+1)}^2=n^2+2n+1$$$.
$$$a[]=(n-n/2)+1,...,(n-2)+2,(n-1)+2,n+2,(n+1)+2,(n+2)+2,...,(n+n/2-1)+3,(n+n/2)+3$$$.
Sample:
$$$n=5$$$
$$$a[]=4,6,7,9,10$$$
how to solve B what's the idea ?
if n is odd print 1 1 1 1 1 1.... else print 1 3 2 2 2 2 ...
1 xor 3 = 2 and (1 + 3) / 2 = 2
for even you can also print
1, n + 1, n + 1, ...
for problem C if n%k != 0 then we can't form a permutation . but or we can simply place n in kth index and we'll be done
why wouldn't this work anyone ?
Take for example
8 2
Your method would give
2 8 3 4 5 6 7 1
But I can also construct
2 4 3 8 5 6 7 1
which is lexicographically smaller due to having 4 instead of 8.This is not the lexicographically minimal solution For example n=12,x=3 you can form a_3=6,a_6=12, others equal to i
The statement asks you to get the smallest lexicographical answer.
I submitted 5 sec before for Q3 but it said that contest over can you kindly accept the solution. Since it didn't compile in time it didn't accept
The problems were really fun!
However, I suspect the solutions for A,B, and C were leaked. While hacking, I noticed a bunch of grey coders with the same mistake in C: returning
-1
ifn>>16 == x
, which doesn't seem related to the problem at all. This fails for testcaseyes, problem c https://www.youtube.com/watch?v=1AikPrkM5K4&ab_channel=PIE
It gets harder to outperform cheaters... Soon they're gonna leak solutions to Ds, I suppose. Dirty <censored>s.
Is this Construct forces? What is your fetish with construct the sequence folks ?
ConstructiveForces
Similar but not same problem for E: here
Nice round thanks!
I will agree with other people that ABCD all being constructive is slightly boring, but I would rather have 6 good constructives than 6 varied but mediocre problems (also I guess im slightly biased lol).
When will upsolving be opened?
Nice contest of constructives Thx for this amazing contest.
For those who are unable to solve C, try finding the ans for n=60, x=2
Why is it wrong? Problem C https://mirror.codeforces.com/contest/1758/submission/182533063
i dont know
For the problem D, I got the answer when n is even , but for the odd n , I tried a lot but didn't get. I was trying to use the seq: (sum of 1st n odd numbers ) = n*n , and to maintain the max-min diff, I manipulated this odd numbers sequence like I made this diff to be equal to n so that n*n matches with the sum but failed when n is odd , in this case 1 value was always repeating. Can someone please help for odd n.
my solution for D:
if n is even, let say max — min is 2n then we can have half 5n and half 3n, if you do the sum it is exactly 4n^2. 5n * n/2 + 3n * n/2 = 4n^2 = (2n)^2.
if n is odd, we can compute for cases where n >= 7. add another 3n and reduce 3n from the 5ns. Sum is still 4n^2
if n is 3 or 5, then just find some cases that work. Example already has case 5.
To make number distinct just add minus from the first half, and add the same thing in the second half. They are guaratee to be distinct because 5n and 3n is a large range and we only have n/2 numbers This solution is very tedious. Is there a better solution than this?
There is this. But I don't think it's pretty.
Thanks ! Nice Solution
I solved D by two pointers technique about min and max of array.
Let's call the minimum and maximum of $$$A$$$ are $$$m$$$ and $$$M$$$, respectively.
Then the minimum sum occurs at [ $$$m$$$, $$$m+1$$$, $$$m+2$$$, ..., $$$m+N-2$$$, $$$M$$$ ], and the maximum sum occurs at [ $$$m$$$, $$$M-N+2$$$, $$$M-N+3$$$, ..., $$$M-1$$$, $$$M$$$ ].
Hence,
where $$$s$$$ is the sum of $$$A$$$.
So run a while loop until find the inequality above met. In each loop, increase $$$m$$$ by $$$1$$$ if $$$(M - m)^2$$$ is lower than range, or increase $$$M$$$ by $$$1$$$ otherwise.
After finding $$$m$$$ and $$$M$$$, it's easy to find the solution. (Just equally increase the elements of $$$A$$$ starting from the minimum sum case, until the sum meets $$$(M-m)^2$$$)
Sir, prease give my rating beck. What do I have to do with your nonsense?
Deepesson You give my rating back imediately
I should be the one asking: why did you ping me with your nonsense?
Y'll get around -135 from this round
https://mirror.codeforces.com/contest/1758/submission/182524851 I literally can't find what's wrong in my solution, can anyone please show why this solution is wrong?
Try for 8 2 , it would fail at (8,2),(16,2)....
Yeah, it was very good, i like it
Can some please explain to me why my solution — 182545721, is giving a time limit exceeded error? While this solution is not 182533564.
I think it's because you used System.out.println for the last loop, while the other person used StringBuffer to build the string and then output it in one go.
Here's your code with printwriter instead of System.out: https://mirror.codeforces.com/contest/1758/submission/182552519
my solution for C :
If n%x != 0 then there is no answer, else p[x]=n. Let j be the current index of n in the permutation, iterate from x+1 to n-1 and , when you find an integer i such that n%i == 0 and i%j==0 swap(i,j).
Unfortunately the solution is wrong, can anyone help me find the mistake ?
Submission : https://mirror.codeforces.com/contest/1758/submission/182515365
You have to set $$$p[n] = 1$$$ at the end after $$$p[x]=n$$$, otherwise you are overwriting it when $$$x == n$$$
the case where n==x is handled by the if statement already
you're right, your problem is the break, you should have pushed more the n to the last position you could so that the solution is lexicographically the smallest
OMG it was never intended to put it there, I forgot to delete it after changing the solution. OMG that's tragic. Thank you for your help!
It’s not a “solution”, if it’s giving wrong answer
It is indeed a solution, I just made a mistake while coding it (forgot to delete a break statement). It got AC in the end.
Screencast with commentary
Also, problem E should not appear in rated contests.
Why?Is it because there is a known problem very similar to it?
Yes, this is a very well-known setup, and there wasn't any new spin on it.
Feeling sad that I almost solved d but couldn't able to submit within time otherwise it was very good contest as per my side!!! My problem D sol.n: 182548322 It was random approach i get to by trying some no.s i get that for every n , 2*n + 1 could a valid difference of maximum of a[i] — minimum of a[i]. If you know the explanation pls let me know!!!
Alternative solution for D
It works only for $$$n > 3$$$, so cases then $$$n=2$$$ or $$$n=3$$$ should be solved by hand (or bruteforce)
It is well known that $$$1 + 3 + \dots + 2\cdot n - 1 = n^2$$$ and $$$max - min$$$ in this case is equal to $$$2\cdot n -2$$$.
Let's decrease second and third numbers by 1 and increment last number by 2, so we will have: $$$1,2,4,7 \dots 2\cdot n-3, 2\cdot n+1$$$ and now $$$max - min = 2\cdot n$$$.
How to get the sum equals to $$$4\cdot n^2$$$? We can add $$$3\cdot n$$$ to every number!
Thus, we have $$$sum = n^2 + 3\cdot n \cdot n = 4\cdot n^2$$$ and $$$max-min$$$ will not change.
This is the best solution
This channel leaked ABC during contest. Can we find all the cheaters who copied problem C and just perma ban them? Close to 1k views on problem C
https://www.youtube.com/watch?v=vGpNQQo-NPI
I think their solution C is unique enough to id the cheaters
@MoreAnyNot really? I'm asking myself how do you know that? Maybe you submitted it yourself?
Really nice problem E.
I don't understand why problem D was included in the contest especially at the rank of D and the cut off point for most participants, it doesn't take any algorithm to solve nor can any interesting observations be made. otherwise great contest.
Loved the contest, thinking 1,3 in problem B was helpful. Saw C, tried, failes :D.
You can check this code
Please help me figure out what's wrong with my C https://mirror.codeforces.com/contest/1758/submission/182541955
Why do you think multiply only by 2 is enough? x=3,n=27 will hack your solution. Output isn't even a permutation.
I get it, my bad. Thanks though
Simple greedy solution for D:
it is easy to see that 10*n difference is more than enough because after step 3 x will be strictly less than n which is less than the difference between the sum of numbers from (10*n-n+1, 10*n-n+2..., 10*n); — (1, 2..., n).
Maybe it's impossible for an expert to solve only 2 problems during Div2, but today i realized it. Thanks to this round, I will practice more to improve myself. :)
I don't think it's an indication of how good you really are at solving problems. Indeed, no one expected so many constructs in a row
C was not constructive however
Finally, Candidate Master, thank you for the contest.)
Congrats for CM.
Callmepandey:orz:
Problem description was very short and clear. I like it. Problem set was also logical and efficient. Just wow round.❤️
Reached expert with master performance today. Thank you for the constructiveforces round.
orz kelin sexpert
Please consider that their is a YouTube channel that post the problems code during contest time https://youtu.be/vGpNQQo-NPI
182612492
can anyone tell me why i am getting runtime error! i tried with prime factorization and swapping
Line 19.
p -= p // i
looks wierd. Shouldn't it bep = p // i
? As a result, list b contains much more numbers than it should, thus you get index-out-of-range error later.Edit: Fix this error and get accepted.
What is expectation raitong for C and D
0
Hi ,this contest had a different style than other codeforces contests. Other codeforce contexts are more algorithmic. But this contest had a more creative style. If this style of contest is going to be held again, please have its own type. Thankful
An awesome round it was.