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

~~hopefully~~enjoying 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

surandround, must be trivialomg 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

MemeWhen 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`

if`n>>16 == x`

, which doesn't seem related to the problem at all. This fails for testcaseyes,

problem chttps://www.youtube.com/watch?v=1AikPrkM5K4&ab_channel=PIEIt 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 for`6 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 :

Spoileryour 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.

MemeScreencast 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

DIt 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:

xMIN.xby ((x-MIN)/n)*n.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 be`p = 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.