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, Kita, 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 level, why am I writing this?
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
omg saarang round
omg saarang round
omg saarang round
Waiting for saarang to say, OMG saarang round.
lol
blue surand round, must be trivial
omg saarang round
Not Not Shading :D
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
As a tester I can assure you that the problemsetters have very good quality and are fun, you can't miss the opportunity to play games with them in this contest :)
"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)
manish.17 fanclub(4)
As a tester I want to admit something, saarang is my inspiration.
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.
Agreed. FIFA is obviously more important than some silly contest. Please reschedule the round.
I hope speedforces round
As a tester, this round was pretty fun to test. Hope the same holds for participants too!
What should I write ⚫⁔⚫.
All the best everyone,Hope it will be great round.
Hoping to do A,B,C
manish.17 You are the great python coder!!. I'm very excited to participate on this round.
Hope this round will make expert.
Note the unusual timing.
Okay
As a former POTUS, I sure hope this round is good.
..
exactly
djay24, hupender
codeforces gonna fail me in the endsems for sure :/
same here bro
Great round in my opinion. How about you?
I solved two problems only ....
It took me long to solve C
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://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_Zaiback round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Ali_ZaiBug round
omg Synapse_13 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 ...
if n is odd print n else print n-2 time 2 and 3 1
1 xor 3 = 2 and (1 + 3) / 2 = 2
Not the most obvious or best solution, but this is how I did it
I basically made 2 cases, if n is odd : put a1 = a2 = ... = an as any number x as their XOR will be x and their sum will be n(x)/x = x if n is even : put a1 = a2 = ... = an-2 as 2 and put an-1 as 1 and an as 3 so that their xor will be 1xor3 = 2 and their sum will be (2(n-2)+1+3)/n = 2
I got an idea for the same observation but I thought it was wrong.
because i used in even state (a1 = a2 = ... = an-2 as 1) Instead of (a1 = a2 = ... = an-2 as 2)
Dunno about the idea of the authors but I've came to a pretty beautiful solution with repeating any number if n is odd. (num ^ num ^ ... ^ num = num) and (num*n/n = num). And if number is even, you can just print 1, 3 and 2 (n — 2) times.
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.
since we want lexicographically minimum permutation and we have to place an element at position x, we should try to get minimum value which is a multiple of x at that position. Smallest one which we can get is 2 * x, then we need to place n at 2 * x , that is possible only if n is divisible by 2 * x, try thinking in this way..
i get it now thank you all .
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
next time please try to vary the problems a bit, not stupid constructive problems everywhere.
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.
please help in finding the mistake i am doing
my logic was that each element must be in its own place of that index and if it is not the case it must be divisible by n if it was given as x
my code- https://codeforces.com/contest/1758/submission/182527203
Think about this cases and you will find your answer: 8 2 and 6 2
answer for
8 2 -> 2 4 3 8 5 6 7 1
answer for6 2 -> 2 6 3 4 5 1
Is this Construct forces? What is your fetish with construct the sequence folks ?
ConstructiveForces
omg Ali_ZaiBug round
Similar but not same problem for E: here
Very interesting round. Can't wait for the editorial to see the D problem solution with diffrent numbers.
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).
Can someone please help me figure out what is wrong in my code for problem C ?
https://codeforces.com/contest/1758/submission/182540182
If(temp%x==0) found=1
This part is wrong. What if x=6, n=36 Your code will show found 1. But it should go like this.. 6,12,24,48..it will not find n=36
I am getting ans as
6 2 3 4 5 18 7 8 9 10 11 12 13 14 15 16 17 36 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1
Yeah, but what if n=x. Did you handle that?
Ok i finally figured out what was wrong. I handled n = x case but i was focusing on placing n as far as possible , instead i should have focused on putting smaller numbers first.
Thanks
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
-1
2 6 3 4 5 1
isn't it correct?
Yes. My mistake.
thanks
Why is it wrong? Problem C https://codeforces.com/contest/1758/submission/182533063
i dont know
for this test case :
your answer is
-1
, but it should be :2 4 3 12 5 6 7 8 9 10 11 1
thanks
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://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.
Heads up, Java codes are incoming.
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://codeforces.com/contest/1758/submission/182552519
Thanks :)
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://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.
I think my approach is similar to u but i didn't have explanation as of u by the submission. thanks
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
Their solution for c failed on system testing (Run time error).
Nop, many of them passed it out
@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://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
Problem C.
One of the test cases is 6 2
CF answer is 2 6 3 4 5 1 .... shouldn't it be 2 3 6 4 5 1?
Updated: I got the error
no in your sol.n 3 is not divsible by 2 the 2nd index
Thank you
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:
Finally,pupil! This contest will be remembered :")
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.
Got it hours ago. Thanks for reply
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
Has this round turned unrated?
what is wrong in my code
include<bits/stdc++.h>
using namespace std; typedef long double ld;
define int long long
const ld eps=1e-6; const int N=1e6; const int M=1e9+7; vectorprimes;
void solve(){ int n,x;cin>>n>>x;setst;
vectorans; for(int i=2;i<=n;i++)if(i!=x)st.insert(i); for(int i=2;i<n;i++){ if(st.find(i)!=st.end()) {ans.push_back(i);st.erase(i);} else if(st.find(2*i)!=st.end()){ans.push_back(2*i);st.erase(2*i);} else {cout<<-1<<endl;return;} }cout<<x<<" "; for(int i=0;i<ans.size();i++)cout<<ans[i]<<" "; cout<<1<<endl;
}
signed main(){ int t=1;cin>>t; while(t--) solve(); }
An awesome round it was.