Hi everyone!
I would like to invite you to another one of our rounds, that I set with my friends Jeel_Vaishnav, FastestFinger, Utkarsh.25dec, the_hyp0cr1t3 and ridbit10
We had two approved contests, but decided to merge it into one with more logical thinking ^_^
The round Codeforces Round 685 (Div. 2) that will take place on Nov/21/2020 17:35 (Moscow time). If your rating is less than 2100, this round will be rated for you; otherwise, you can participate out of competition.
I would really like to thank my co-setters and:
- 300iq for coordinating our round and always replying quickly.
- jtnydv25, antontrygubO_o, Monogon, Vivek1998299, tejas10p, l_returns, T1duS, kshitij_sodani, smile_boi, Ajax, JeevanJyot, ViciousCoder, Prosaic_26, vatsals1, saarang, _Damon, sac2607, matterhunt, Matir, Black_Eye, vatsal_nagelia, kalki411, ekanshi, Idkwhoami and vishesh312 for testing the problems.
- the_hyp0cr1t3 and ExplodingFreeze for testing as well as proofreading and making suggestions for the problems.
- MikeMirzayanov for Codeforces and Polygon platforms.
You will be given 6 problems with one additional subtask and 2 hours 15 minutes to solve them.
Good luck — let the games begin :D
UPD 1: The revised scoring distribution will be: $$$500 - 750 - 1250 - 1750 - (1500 + 1000) - 3000$$$
UPD 2: Editorial — Hope you guys enjoyed the round, we will hopefully be back sometime next year :)
UPD 3: Congratulations to the winners! :D
All Participants:
Official Participants:
As a tester, I haven't tested yet.
EDIT: I have just tested, and would like to say Ashishgup orz
As a tester, I knew that Monogon will be here for contribution:)
As a contribution, give me Monogon. :)
me toooo
I think twitter is more suitable for getting you the justice you deserve
destroyed in seconds op
As a Digon you have my upvote
Dad, you're embarrassing me
Nothing to be embarrassed of, I'm proud of the contribution you have and I see many more coming :)
cute!
Hi Great Great Great Great Great Grand Father !!
My curious mind wanna know relation between of yours Digon and Monogon
"mono" usually means one
"di" and "bi" usually mean two
Its like with monochromatic and dichromatic
What about Nonagon ?
Father and son XD
As a (first-time) tester, my name is not in the list :(
UPD: Now it is.
As a tester me too.
As a first time tester, can I get some contribution?
Sure :)
I too am first time tester :p
Monogon is Donald trump of code forces!
was it a Compliment or something else?
He did make codeforces great again tho :/
In your CV/Resume make sure to mention "Past Job Experience : Tested more than half of the CF rounds."
Well that was a pleasant surprise, yet another Ashishgup round :)
ORZ Ashishgup
And I wish all the best for all those who are going to give this round...
Indian Round
** Indian Round by Ashishgup
**Indian Round by Ashishgup,Jeel_Vaishnav,FastestFinger,Utkarsh.25dec,the_hyp0cr1t3 and ridbit10
.
The game will be played between Ashishgup and FastestFinger , I guess.
In game, Ashishgup will play first move XD.
.
If I am able to solve problem A easily then it's not a Ashishgup round i was expecting.
Looks like Ashishgup didn't get placed LOL so he is setting up contests.
forget about him if he is placed or not are u placed or not ? he is already a grandmaster and u are saying he is not placed , what are u saying please check to his linkedin profile !! you will say then awoo tourist vovuh and all those who are preparing contests for all of us are not placed !!
don't make any assumptions yourself !! attend the contest solve the problems !!
Hoping for a good round with good problem sets Ashishgup as always!! all the very best everyone !!
Chill bruh was making a joke.
Fun fact: Jokes are supposed to be funny.
(I know comedy is supposed to be subjective, but this was objectively unfunny.)
These guys have 100 hrs in a day!
AshishGup round:- Be ready for Interactive problems :)
:D
there is div3 contest this month or not ?
Yes.. After 4 days div3 will be held. See the codeforces calendar. You can add it with your google calendar. It's so helpful.
Another Indian Contest...... India OP!!!
you're right, it's very OverPopulated
India Over Powered . . . . More population means more downvotes on your comment
yeah overpowered caste system, religious violence, corrupt low iq leaders, trashy education system, garbage filled streets....
Though these all... We are doing exceptionally well in various fields... And you are commenting on the contest made by an indian...
who I'm pretty sure relied on external sources for his education, there's nothing Indian about it. If anything, he reached this level despite what India had to offer in terms of education.
please do not show your pessimism over here, even I am an Indian and gone are the days when we needed to solely rely on external(Here I think you mean foreign country) resources because we have our own set of good programmers and resources now thanks to many great efforts mostly in the form of YouTube Channels(Especially Codechef nowadays and individual efforts too by striver_79 demoralizer kazama460 and many others too.). But just think would we all would have grown to the extent that we are individually as a University or from any single Country. No, the sharing of knowledge and the Competition makes us all grow better and faster.
I'll probably be downvoted here but just being honest.
I myself relied a lot on external sources.
Right, we all have learnt from external resources. I don't see how, it is a bad thing though. It just shows we are eager to learn and contribute further building on what already is there. Don't forget the good things people have to say about Indian youtubers(speaking of external resources) teaching stuff. Also More Population = More Competition = Better Stuff in the long run.
I'm simply trying to refute the comment above that says India is OP when it's clearly not, i don't get what your point is. I don't mean to belittle the efforts of those "Indian" programmers, but let's be real here, their channels talk about a very small subset of what is out there related to CS, do you really think that's equivalent to a quality CS education? Also we're talking about a very small minority here(competitive programmers), most students are just having their time wasted by the system as we speak. For sure there are talented people in India too, all I'm saying is the system is only slowing them down.
By saying India OP.. He was just cheering up.. And maybe you had a funny/sarcastic intention but think about the subject of your comments initially.. Making fun of population of any country can be seen as rude
a statement being rude doesn't necessarily make it false, people should develop a bit of tolerance, it's very easy to live in a fairytale being in denial of the problems that surround you. Pointing out the problem or ridiculing it helps expose it.
let me ask you one thing what country are you from? because every country has its problem. i m not denying that india doesnt have problems but we are trying to solve those and even if you want to expose our problems do it in a polite manner that doesnt hurt other feelings. our roads might be filled with garbage but your mind and mouth is filled with a lot more and a piece of advice instead of wasting your time here writing stupid comments and creating controversies why dont you participate in a contest and get atleast rated
I'm Indian. Every country has it's problems for sure, but some are way worse than others, like this one. I don't think i was being too rude, you guys are too sensitive. Calling my comments stupid is easy, give me valid reasons for why they're stupid. I'm doing good on my original account.
Yeah every country has its problems and making fun of your own country's problem on an international platform is in no way gonna solve your country's problems. If you can't contribute to solve those problems then simply stfu
i disagree, i personally changed my mind about a lot of things by listening to other people ridicule and criticize my ideas, and I've seen it work for lots of other people too. Ridiculing is helpful as it exposes how truly ridiculous your opinions were, politeness doesn't always work, people don't take you seriously if you're too polite, speaking from experience. Also, I am working on some stuff atm that'll improve the quality of education here hopefully, but i wouldn't tell someone to stfu because they're not contributing, either what they're saying is valid or it isn't, them contributing has nothing to do with the validity of what they're saying, unless it's directly related to contributing.
Good to know that you are contributing to the Education but I think you should be sensible enough to not respond to those over-patriotic cringe proud comments everywhere. They will naturally get downvoted. Nothing can't be done about them. But ridiculing your own country's problems on an international platform in no way makes sense to me. If you think that you can contribute to solve or reduce the intensity of those problems. Then just do it internally. If you think ridiculing your country's problems on an international platform will expose them, then you are wrong. You will only motivate the racists that are everywhere. If you don't believe me you can read comments on this blog. It's just one example of many such occurrences. I know I am gonna be downvoted on this one. But that's what I wanted to say. Peace Out
"If you think ridiculing your country's problems on an international problem will expose them, then you are wrong. You will only motivate the racists that are everywhere."
I agree that there is some truth to this, I'll be more tactful next time. Yes I did expect a lot of downvotes from cringy patriots, but I said it anyway for the non-deluded crowd just to make them think about it, but i guess i could've done it in a more civil way. Appreciate the reply.
Bhai, Hum aapko hi vote denge, aap election me to khade ho jayiye, kaha aap yeh competitive programming ke chakkar me phas gaye
he(and a lot of other people) excelled growing in the Indian environment even if they used external sources. And there are good sources in India as well. So, I don't see any point here.
Please tell me what the "Indian environment" provides, and why aren't most people like him if it's the magic of the "Indian Environment".
I'm not denying the existense of good sources in India, I'm saying most sources are trash.
"So, I don't see any point here"
You're speaking as if it's very apparent that there's no problem with our education system. Do you really think that? Do you think most teachers out there are passionate about the subjects they're teaching? Do you think they teach well? Do you think they can take criticism about their teaching without getting offended and taking it out on their students? Seriously?
Yes, there are problems. More than often, I have cursed the Indian Education System myself. But u were simply being disrespectful. There is a way to put your opinion on a public platform. I am not saying that there is some magic in "Indian Environment". I was just putting forth the point that people excel in our environment as well.
Yes i agree that I could've expressed my points in a better way, I'll give you that.
"I was just putting forth the point that people excel in our environment as well"
And i agree, there are people like that, but that doesn't necessarily mean that the environment itself is generally good, because if it were, we would see Ashish Guptas everywhere (not implying that everyone should be like Ashish Gupta, I'm just giving an example).
yes, the number of good coders in India is very less. And none of the top 20,30 coders are Indian. Even in software area we are pretty weak in innovation. That is the reason we are producing CEOs like Sundar Pichai and Satya Nadella but not people like Bill Gates and Mark Zuckerberg and Elon Musk. We have come a long way, but we still have a long way to go.
Most people in any country don't start out in cp using their country's education system, at least I don't think...
SALLE Bhosideke.
I am offended by something I completely agree with.
ah, whats an Indian round without a mandatory thread like this
This guy Ashishgup has different level fan base.
As a tester, I would highly recommend this round.
Machaya bhai!!!
hrishabh314, dekh.
aaj kal to kya hi kharab halat chal raha bhai ... itna assignments aur projects hai ki cc ho hi nahi pa raha!
I think you should delete 'Announcement of Codeforces Round #359 (Div. 1)' ;)
I just love Ashishgup rounds.
As a CP enthusiast, can I be a tester?
Ashishgup Merging two approved Div-2 contests into one indicates we can expect round to be slightly hard and having more challenging problems?
It's a trap.
Welcome to another Indian round. I hope everyone good ratings.
you hope, but it's not possible that everyone will have a good rating.
Interesting math problems expected from these setters :P
as a contestant, i want my losing rating back :)
As a tester,
Omg Indian round! So excited
Kinda like the 2:15/2:30 hr format for the rounds. Hope it stays ^^
Trying to get the contribution .....
Hope it's not like the last two rounds =)
(specially the one who had c1 and c2)
The great Ashishgup is back
The tag of the blog Announcement of Codeforces Round #359 (Div. 1). When you open #359 you see an extra announcement in the contest materials section which redirects to this blog. Isn't misleading to use a wrong tag?
I think it is a mistake. This announcement has wrongly been routed to that round. My guess is you won't find this announcement in today's round's contest materials.
Are previous rating changes rolled back? I can't see my rating changes for last two contests
I'll participate
Nikhil_Medam where you at?
Probably giving a contest from your account.
I asked him give more but he said free boosting is over now ;_;
Hoping to stay in div1
gl
another bitforces will be happend
A > B and wrong on test 2 whenever the problem setter is Ashishgup.
ITS LIT!
Hope that I'll get the lost ratings in this round :)
why Monogon gets this much upvotes more than any red?any reasons?
Because most other reds are smart and decided not to waste time farming contribution.
do you mean creating second account named diagon?(just a joke as I don't have any proof :rofl:)
I confirm it's not him, also there's nothing like "Diagon" it's digon
Nice contest, thank Ashishgup and your team. Goodluck to everyone !!!
Ashishgup orz.
This guy has a different level fan-base.
demoralizer
rotavirus
(Also, since I'm not a setter/tester of this contest, this is veryyy irrelevant)
You can become one. Just join the stack outside Mr Gupta house.
*queue
Just ask any CF coordinator. Mr Gupta hates queue.
Thank Ashishgup and your team for creating a contest for us ^_^
Thank Codeforces for creating a contest site.
Goodluck to everyone !!!
Just asking since E1's score is 1500, will it be easier than D whose score is 1750 ?
On last div2(not edu.) B's score was 1000 and C1's 750. Was C1 easier than B?
You don't trust scoring distribution nowadays. Especially not in Ashishgup's rounds.
I hope there is no game theory problem.
I am confident enough that this round is going to be div 1.5
It's time for Ashishgup to make a jump in the top contributors list.
Wishing high rating to all of you. Good Luck for the contest
good luck for everyone
Nice contest Ashishgup
Got destroyed
D has the similar idea with AGC002E.
E1 and E2 is really interesting.
Thanks for the contest :)
How to solve C?
Try to store things in frequency array (number of times such charactor $$$c$$$ represent in string $$$s$$$)
We can always swap array whenever we want without affecting increasing work
We can only increase the whole $$$k$$$ charactors equal to $$$c$$$ if $$$c$$$ exists atleast $$$k$$$ times
We will compare in order of small to larger. And increase whenever necessary. But if there is no valid smaller elements than the current $$$b[i]$$$ (valid here means it exists atleast $$$k$$$ times), then the answer will be "No"
This is whining because I made several wrong submissions, but I think A is too hard. I think A in any contest should be trivial to every official participant — more like a registration button than an actual problem. If we are talking about div 2, it should not contain almost any observations, just implementing what you're reading.
A is trivial. Look at the number of submissions
I got 4 WA on A and almost kill myself when got AC
Lol
Seems like you're new to Ashishgup rounds
Then people will say they were judged in A on the basis of typing speed and not thinking skill.
There should be some sort of idea involved , it can be very basic though for A .
Note : I solved A after more than 3000 people solved but i don't think it was not suitable for being A.
If I may offer my opinion as a tester, today's A is more prone to being WA'd by higher rated participants than lower rated participants, more CM+ testers went along the wrong route of divide then subtract than our specialist / expert or lower testers. Also I am curious what your solution was? The intended solution was min(n — 1, 2 + (n & 1)) (Odd -> Even -> 2 -> 1).
yep, this made me leave this contest also somewhat similar to this problem : https://leetcode.com/problems/minimum-number-of-days-to-eat-n-oranges/ .
A had literally 1 observation: if n is even, it can be reduced to 2 in 1 step. Also all the corner cases were already present in the samples.
1 observation too much.
I think A was easy but probability of WA was greater for A than usual
Many other A's in div2s are like that (not direct implementation). Its better that way maybe as there is also a div 3
I know that feel
Spent 25 minutes and two WA on A
But somehow it was obvious for thousands of other contestants
I was so frustrated that I couldn't solve A. Ruined the whole contest for me. Solved B and went to sleep.
Thanks for the great contest! How to solve E2?
Let's say the answer array named
A
. Use the value ofA[1]
(which is at first still unknown) as a pivot, ask thexor
value betweenA[1]
to the rest of the number, and keep those values. At this moment, you already askedn - 1
queries.Then, look into your
xor
-s values, if there is at least two samexor
result in different index (let's say indexi
andj
), you can ask theand
value of indexi
andj
. Theand
value must beA[i]
andA[j]
since it is the same. Then concludeA[1]
and the rest of the array. You only use in totaln
queries for this case.If there is no same
xor
values, then the array must be a permutations of0..n-1
. To find the value ofA[1]
, you can use the index which has thexor
value 1 and 2 toA[1]
, let's say the index is id1 and id2. Then, askand 1 id1
andand 1 id2
. From here, you know the correct bits ofA[1]
except for the least 2 bits. For the most right bit (the least one), you can use the result ofand 1 id2
since the difference must only occur in the 2-nd least bit. For the 2-nd most right bit, use the result ofand 1 id1
since the difference must only occur in the least bit. Last, constructA[1]
and conclude the rest. You only use in totaln + 1
queries for this case.It is simpler to look for 0 and n-1 xor values in the second case since n is a power of 2. These two numbers should differ in each bit. Then we can ask for ANDs with some third number and find those numbers with bitewise operations.
It's clear that either there exists $$$a_i$$$ and $$$a_j$$$ that satisfy $$$a_i=a_j$$$, or $$$a$$$ is a permutation.
For each $$$i>1$$$, query the XOR of $$$a_1$$$ and $$$a_i$$$ and let it be $$$X_i$$$.
If there exists $$$X_i=X_j$$$ (this can be checked with $$$O(n)$$$ complexity), it's obvious that $$$a_i=a_j$$$, so we just need to query the OR of $$$a_i$$$ and $$$a_j$$$ to get $$$a_i$$$ and then work out the whole array.
Otherwise, as $$$a$$$ is a permutation and $$$n\ge4$$$, there certainly exists $$$a_{k_1}$$$ and $$$a_{k_2}$$$, where $$$a_{k_1}\oplus a_1 = 1$$$ and $$$a_{k_2}\oplus a_1 = 2$$$. We query the OR of $$$a_{k_1}$$$ and $$$a_1$$$, which is equal to $$$a_1$$$ except for the last bit. Then we query the And of $$$a_{k_2}$$$ and $$$a_1$$$, which is equal to $$$a_1$$$ at the last bit. And therefore $$$a_1$$$ can be calculated, so as the array.
How to solve D?
You look at the point with maximum x, such that (x, x) is inside your circle. If any move from (x, x) loses, player 2 wins. After the first move, the state will be (0, k) and player 2 simply plays copy-cat, (k, k). This way we reach (x, x) when it's the first players turn, so he loses. In the other case, player 1 wins. I will let you find the proof and if you can't I will provide one
please give proof.
you can see that $$$ d^2 >= (a * k)^2 + (b*k)^2 $$$, where $$$a$$$ and $$$b$$$ denote total up and right steps taken, now you can notice from the parity of $$$a + b$$$ whose move it is, now parity of all the maximum value of $$$a + b$$$ distance we will be same, so just calculate it, and that will be your winner.
Ok, in the second case, the second player won't want to do the same copy-cat thing for every move, obviously. At some point say we have (a, a). First player moves (a+k, a). Now say this is the turn when the second player doesn't want to do the copy-cat thing and moves (a+2*k, a). Player one moves (a+2*k, a+k). Now, if player 2 wants to avoid (a+2*k, a+2*k) that results in loss, he will move (a+3*k, a+k). This constant 2*k will give player 1 the win.
ok.... Thank you
Update: Solved. The problem is in my loop range. Why my code gets WA? My code
how to solve A ?
if N is even then ans is 2 else ans is 3 base case is for n=1,2,3
The question states that division by proper divisors is not allowed. So, it makes sense to keep the number even all the time. If you keep it even, you always can divide by its greatest proper divisor i.e.
n/2
.When n is odd, decrease it by 1. When it is even, divide it by
n/2
(the greatest proper divisor). This is the optimal strategy.How to solve problem E2 ?
My guest is to solve with the case of n = 4, then find use the same code for the case n > 4, but I have not figured it out yet :((.
This will not work.
Actually, there is a method to deal with 1451E2 - Bitwise Queries (Hard Version) with no more than n queries and the contrast that n is a power of two is not needed.
Queries
XOR 1 i
for $$$2 \leq i \leq n$$$, the return value store in an arraya
.If all elements in
a
are all disjoint, then theans[1]
must be the only number in[0, n - 1]
which not appear ina
~.(**not true**)Else there must be at least one pair $$$2 \leq i,j \leq n, i \neq j$$$, such that
a[i] == a[j]
, so queryi, j
, the return value will beans[i]
, soans[1] = ans[i] ^ a[j]
Then
ans[i] = ans[1] ^ a[i]
for $$$2 \leq i \leq n$$$.UDP: sorry, my method have a bug, thanks to ExplodingFreeze
Distinct xors will not be sufficient to calculate a distinct array, consider:
xors:
0 1 2 3
This can be
0 1 2 3
OR3 2 1 0
Note that
a[i]
donate the return value of QueriesXOR 1 i
. so I don't understand you.Sorry, I misread your original comment, check my updated comment now.
I think in this case you have to use the fact that you will have XOR of all ones somewhere. So you have $$$a$$$ and $$$b$$$ with exactly opposite position of 1's. Then you take a third number $$$c$$$ and query $$$c$$$ AND $$$a$$$, and $$$c$$$ AND $$$b$$$, the OR of the two results gives you $$$c$$$ (and then you know the whole array because you have XORs).
WHAT THE HELL WAS PRETEST 2 OF C ..!!! :-(
+1
I am afraid you did not consider alphabetic order. For example, 'jjjj' and 'eehh' should print "No" since j cannot be e. I passed pretest 2 after considering it, ultimately failed though :(
what is the value of k in this case?
k=2, but I guess it would be the same when k=1
true
How to approach problems like D in general? Is there any specific approach? This time I was able to guess the solution for D after thinking for an hour.
In this D I used Hit and Trail LoL.
Well you notice that you need exactly some linear number of operations. So inuitively you just find all a1^a2, a1^a3 ... a1^an. We do this because, from here, if in three operations we can get a1, a1^a1^ai = ai for any i. And the way to get a1 is to also find a1&a2, a2&a3 and a3&a1. Now all you have to do is notice that s1 = a1+a2 = a1^a2+2*a1&a2 and so on for any two numbers. Solve these three equations and three variables. you'll get a1 = (s1-s2+s3)/2. And then we are basically done. Total n+2 ops.
This is solution to E ig. OP asked about D.
Sorry I think you misunderstood I was asking the solution to D not E1
Here's my approach. I hope you are familiar with the traditional Nim game of 2 piles in game theory. i.e.
Suppose there are 2 piles of equal number of stones and in one move a person can remove any non-zero number of stones from a single pile and the first one to run out of moves loses the game.
The winning strategy for the 2nd guy is making the same moves as that of 1st guy but in the opposite pile to that of 1st guy. The idea behind this strategy is to maintain symmetry at every point in the game.
Now if you observe carefully, similar kind of symmetry is prevalent here. A move in horizontal and a move in vertical direction is equivalent to moving a distance of d*(sqrt(2)) radially along x = y line. so when our opponent makes a vertical/horizontal move, we counter it with a horizontal/vertical move respectively in order to maintain symmetry.
By ensuring that this symmetry is maintained throughout the game you can figure out the strategy for optimal moves just as done in nim game.
Edit: A much clear way to present the other idea would be think of 2 piles (1 for horizontal moves and another for vertical moves). Each pile has n moves. A guy is allowed to pick a single move on his chance. This is again classical nim game. The second guy picks a move from the opposite pile and can easily win. In case one pile has n+1 moves, then first guy wins.
Hope this helps a little :P
That was an OP contest. Really good stuff.
for E1 i found xor, and of a1, a2, then xor, and of a2, a3, then found a1 + a2, a2 + a3, a1 + a3 using some formulas, then i tried to find rest a4, a5 ... using xor a1 ^ ai. got wa4, was i close to right solution?
I use the same method and got passed, don't know about the actual test case tho.
I was trying the same idea but this will lead to n+3 queries.. Couldn't reduce it by just one :(
E: found the issue, you can get a^c from a^b^b^c
Actually, if you know a1 xor a2, a2 xor a3, then you can know a1 xor a3 = a1 xor x2 xor a2 xor a3.
So how can I find a1 anyway?
SUMAB = XORAB + 2 * ANDAB
SUMBC = XORBC + 2 * ANDBC
XORAC = XORAB ^ XORBC;
SUMAC = XORAC + 2 * ANDAC;
a2 = (SUMAB + SUMBC — SUMAC) / 2;
a1 = SUMAB — a2;
a3 = SUMBC — a2;
What a bitwise math. Thanks!
ANDAC = ANDAB & ANDBC;
Well, This is wrong.
eg) a = 1, b = 0, c = 1
a & c is 1 but (a & b) & (b & c) is 0.
Oh i get it, thats why i got wa4, thank you
Ohhhhh.... damn.. sad I was v v close :(
ty anyways!
if you know, a^b and b^c, then a^c = a ^ b ^ b ^ c, no need to query it. Same with &
How to do D :(
think about symmetry strategy, for example:
(0, 0) =>
(0, k) =>
(k, k) =>
(k, 2k) =>
....
Why is this working?
Each player can push the game to the maximum number of safe moves by increasing the smaller axis.
So, the answer will be whether that maximum number of safe moves is even or odd.
Anyone who faced issues (TLE) in C with python?
See this https://mirror.codeforces.com/blog/entry/71884
I used fast i/o during my second submission and still got tle on pretest 4.
fast i/o is not always enough. I got tle even using pypy. Then just added this 2 line to my code and pretests passed.
Thanks! I'll take care of this in future.
wrong answer Integer 0 violates the range [1, 4]
what is the meaning of this? I was getting this on the contest in problem E1.
this is my code:
You have to output a number from 1 to n for index... 0 isn't allowed
I'd tried with 0, but same message. And In the problem it is said the index is [0, n-1]
Elements' values lie in $$$[0,n-1]$$$.
That shows 0 < a[i] < n for each i ... but what you have to output doesn't relate with the value... our array : a[1], a[2], ... a[n](there is no a[0])
The array is $$$1$$$-indexed.
in your query, you have to do
cout << s << ' ' << i + 1 << ' ' << j + 1 << endl
because the queries are one indexed.
Got wrecked
How to solve F?
First player loses iff for all diagonals of the form $$$i + j = k$$$ have xor-sum equal to 0 (similar to Nim). Proof: if they are not 0, you can make all of them 0 with a single move (and you can't make them 0 if they already are).
Nevermind, I got the diagonals wrong. I get it now :)
Suppose we define two state State 1- All diagonals have XOR equal to 0 State 2- Atleast one diagonal has non-zero XOR There exists a move from state 2 to state 1 and from state 1 a player is forced to move to state 2. So if there exists any diagonal with non-zero xor, then player 1 wins else player 2 wins. Hope you get the idea
What was the logic for B?
You need to replace each parts of substring with other subsequence in total-string
We just need to replace one part !
Just need to check whether one of these condition are true
We just need to replace one charactor !
Just need to check whether one of these condition are true
How to solve C?
Try to store things in frequency array (number of times such charactor $$$c$$$ represent in string $$$s$$$)
We can always swap array whenever we want without affecting increasing work
We can only increase the whole $$$k$$$ charactors equal to $$$c$$$ if $$$c$$$ exists atleast $$$k$$$ times
We will compare in order of small to larger. And increase whenever necessary. But if there is no valid smaller elements than the current $$$b[i]$$$ (valid here means it exists atleast $$$k$$$ times), then the answer will be "No"
For me this was a disaster, if cf-predictor is right that was the biggest negative delta I ever got. No need to tell what I think about the problems ;)
All the problems are quite tricky!
It was a weird round, full of ad-hoc problems. Yeah, they aren't that great imo, but these are the sort of rounds that make you feel either great or terrible.
adhoc adhoc adhoc everywhere even people passed D just with some guess. It took me a tough time to prove why that formula is correct but I think CP doesn't reward proofs over guesses same is the case with most of his previous rounds too in almost all of them first 5 problems will be just adhoc or formula. and after that are beyond the scope. Codeforces can be better transformed to adhocforces. I don't see much code in writing formulas. thus This is not code-forces.
E1 was logically much simpler than D IMHO btw
the difficulty level of questions in my opinion: D<B<A<C
The problems where all more or less like: Find the key observation and solve easyly, or die.
I'm getting downvoted by those who found the key observation haha.
may be you are wrong . i completed a,b,c under 30 mins and couldnt get any idea about D for rest of 2hrs :(.
Am I the only one who thinks D is easier than C?
Please explain your approach for D!!
99186053 look at this code.
Are you going in a staircase manner?
I just simply iterated x, y by k until x * x + y * y > d * d. If the number of steps is odd, then Ashish win and vice versa!
Why does this work?
Yeah same question!! Why is this working?
see this comment comment
If two players play optimally, the number of steps taking by them is always maximum, I can prove it! So we need to find what is the maximum steps, and obviously, Ashish wins if that value is odd.
99136653 here is my submission!
How to solve Z?
Problem F is very similar to problem 1149E. (https://mirror.codeforces.com/contest/1149/problem/E)
How to solve B? It was harder than A and C for me lol
How to solve C? B is about to find if there is a s[l] in the left [0,l-1] or if there is a s[r] in the right [r+1,n-1].
Try to store things in frequency array (number of times such charactor $$$c$$$ represent in string $$$s$$$)
We can always swap array whenever we want without affecting increasing work
We can only increase the whole $$$k$$$ charactors equal to $$$c$$$ if $$$c$$$ exists atleast $$$k$$$ times
We will compare in order of small to larger. And increase whenever necessary. But if there is no valid smaller elements than the current $$$b[i]$$$ (valid here means it exists atleast $$$k$$$ times), then the answer will be "No"
Check my simple solution
I got really frustrated by not being able to solve A and somehow solved B while cursing myself about A , LOL . BTW could someone say the logic behind A ?
Let's consider if the value $$$\geq 4$$$. We know that for all even values, we can easily go to $$$2$$$ then go to $$$1$$$, so we have $$$2$$$ steps overall. For odd values, we can't do better than $$$\text{steps even} + 1 = 2 + 1 = 3$$$. Let's say we can jump to $$$3$$$ in one step (we can't jump into $$$2$$$ since the number is odd), is still takes $$$2$$$ steps into $$$1$$$ and it makes at least $$$3$$$.
consider string s=111010101000 , consider l=4,r=9 , of course sub-string[l-r] is a sub-sequence of but as per conditions we cannot take the same sub-string , the only way we can find another sub-string is if we can find s[l] before l OR s[r] after r . because constraints are small you can brute-force .
how to solve C ?
Try to store things in frequency array (number of times such charactor $$$c$$$ represent in string $$$s$$$)
We can always swap array whenever we want without affecting increasing work
We can only increase the whole $$$k$$$ charactors equal to $$$c$$$ if $$$c$$$ exists atleast $$$k$$$ times
We will compare in order of small to larger. And increase whenever necessary. But if there is no valid smaller elements than the current $$$b[i]$$$ (valid here means it exists atleast $$$k$$$ times), then the answer will be "No"
You need to replace each parts of substring with other subsequence in total-string
We just need to replace one part !
Just need to check whether one of these condition are true
We just need to replace one charactor !
Just need to check whether one of these condition are true
amazing round difficulty level of each question was up to mark
D is a bulshit. It's all my words about this contest. Sorryyyyyyy
I am not sure about that, but I focused on D and lost focus on E which resulted a huge negative delta :/ Sad thing that I am bad at game theory. I wonder, what is the actual proof for the problem? I don't like in general the problems which are mainly focused on intuition which results in a big gap in the scoreboard(for example, masters and specialists together in the same page).
These problems might not favour you, but it can be argued that they give higher chances to lower rated people.
I can agree with you. After reading D I immediately go to E1. This intuition problems really rage me.
Actually, it's not just the intuition part.There are 2 ways to arrive at a solution.
1) Use analysis, unravel each step and go from problem to solution
2) Guess a solution using observation and try to prove it.
The former is actually interesting,but the later is quite annoying at times,since it's not easy to see that observation,sometimes there is this blindspot where we miss it.But we have to accept that it is a part of the game.
You are absolutely right. But I have looked for reason why I was bad in this CF. I have already released my emotions.
I used 3) Guess the solution, notice it works right for the second player if he wins but you're not sure about the first player, submit anyway and get AC
Yea,at times even for experienced coders, it just doesn't strike.Btw can you elaborate on your soln for D ?
Assume the optimal strategy is right, up, right, up, ... done.
lol, how did you arrive at it ? I mean there are so many such constructions, why did you pick this ?
The second player can win with this strategy in case he wins (using this strategy). Then I just assumed there's nothing the second player can do to fight against the first player when he can't win with this strategy...
that's a great way of arriving at it
see the main proof is that the path traversed until we move out of the quadrant of the circle is always maximum path will be followed as both the players play optimally. if this maximum path is of even length UTkarsh is winner else Ashish.
That is not a proof...
The only thing I observed and took for granted is that all points on a diagonal (y-x = a) are either all winning or all losing. Then I just checked whether the point (x,x) which was just inside the circle was winning or losing. I don't believe this amount of pattern recognition makes a question bad.
Lol it seems like many high experts and candidate masters lost rating today according to this comment section
That is actually very true indeed. It might be some psychological feeling that as a specialist or low expert, solving A,B,C fast is already good and submitting anything even if you got penalties on D is good as you have done already good. So that makes the person confident. Now, as a CM/high expert, that is not the case. We know solving only A,B,C will guarantee a huge rating loss so we know that 1 penalty would differ a lot. I myself tried to proof an optimal strategy for a lot of time but couldn't so I wrote any solution and got WA.
try to find the bug and feel that pain
Maybe time to quit CP :)
counter test for you
There is a shitty bug in the code. I couldn't find it during the contest. The solution is actually correct for both E1 & E2 except that blinder
WA on pretest 2 legacy continues ..
E2: First, let's learn $$$a_1 \oplus a_j$$$ for all $$$j$$$. We know $$$a_1 \oplus a_1 = 0$$$ and we can use $$$N - 1$$$ queries to learn the remaining values. We'll use the remaining two queries to learn $$$a_1$$$.
If $$$a_1 \oplus a_x = a_1 \oplus a_y$$$ for any $$$x \neq y$$$, we know $$$a_x = a_y$$$. We query for $$$a_x = a_y = a_x \land a_y$$$ and compute $$$a_1 = (a_1 \oplus a_x) \oplus (a_x \land a_y)$$$.
Otherwise, all $$$a_1 \oplus a_j$$$ are distinct. It means the hidden array is a permutation of $$$[0, N)$$$. There exists some $$$a_1 \oplus a_j = 1$$$; we query $$$a_1 \land a_j$$$ to learn all the bits of $$$a_1$$$ except its last. Finally, we take any $$$k \neq j$$$ such that $$$a_1 \oplus a_k$$$ is odd and query for $$$a_j \land a_k$$$ to determine the final bit of $$$a_1$$$.
To finish we compute $$$a$$$ using $$$a_j = a_1 \oplus (a_1 \oplus a_j)$$$.
This was my second contest.
Nice problems are given. Loved to participate in it.
Just wondering, is there any reason the answer for problem B is "YES"/"NO" but the answer for problem C is "Yes"/"No"? It seems B and C was originally belong to different contest :)
Different people prepared those 2 problems iirc, that's most likely why.
Hi, everyone. It confused me for a long time. I wonder why this 99184980 got ILE on test 3.
Seems like cout is not flushed so not inputs are provided.
I think cout is flushed by endl. T_T
Maybe it's because you queried twice without reading the result of the first query?
Can someone tell me why my E is wrong.
First I queried "XOR 1 2" then "XOR 2 3" then "XOR 1 3". This should be enough information to find element 2 and from 2 we can find 1 and 3. now we keep doing "XOR i i+1" from i=3 to i=n-1 to get all numbers.
I feel like I'm completely disregarding something because this algorithm takes only n queries bu then again I tried it in quite a few testcases and it seems to be right. Can someone pls help?
EDIT: I'm sorry guys, I misread the question to think "XOR i j" means xor of ALL elements between i and j.
Please ignore the thread :(
I don't think
XOR 1 2
XOR 2 3
XOR 1 3
is enough information for find out what is a2I was kinda skeptical too about it, but on trying in random numbers it works.
Again I might be completely overlooking something, so please bare with me lol
You can't get element 2 from that information. One example is when the first three elements are the same. All the xors give 0
If first 3 elements are same, the third xor will not be 0
First, because ($$$a_1$$$ xor $$$a_2$$$) xor ($$$x_2$$$ xor $$$x_3$$$) equals to ($$$a_1$$$ xor $$$a_3$$$), the third query is waste. So through these queries we can find only the relation between $$$a_1, a_2, a_3$$$, not the value itself.
Please find 3 numbers where it doesnt find the correct sequence for n=3
Have you tried the case of this?
It works
I wonder... I tried your code in my system, for the case of
the interaction will be like this, isn't it?
omg I just realized "XOR i j" is the xor of ai and aj and not xor between all elements between i and j.
I'm really sorry lol
$$$[0,0,0,0]$$$ , $$$[1,1,1,1]$$$, $$$[2,2,2,2]$$$ , $$$\ldots$$$ are indistinguishable.
Why? Try running my code in your system, it works. EDIT: nvm i misunderstood the question
$$$a \oplus a = 0$$$
$$$a \oplus b \oplus b \oplus c = a \oplus (b \oplus b) \oplus c = a \oplus 0 \oplus c = a \oplus c$$$
OMG I just realized "XOR i j" is the xor of ai and aj and not the xor of all elements between ai and aj. I'm really sorry lol, idk how i didnt see it for this long.
Plss ignore the whole thread :(
Your code generates a right sequence given the values of XOR but it is not essentially the hidden sequence. Try this test case on your system — 4 1 2 3 0
What is the approach for D ? one of the wierdest problems I have ever seen.
Link Why i got TLE in Problem D. I think in worst case number of iteration will be 166096404 so for 2 sec time limit this should pass easily.
In problem D my intuition was that Ashish and Utkarsh will travel in a way so that Manhattan distance covered is maximum possible . Also $$$x$$$ and $$$y$$$ will be multiple of $$$k$$$. Thus i took all possible values of $$$x$$$ and corresponding maximum possible value for $$$y$$$ and took maximum of $$$x+y$$$ say $$$dd$$$ . If $$$dd/k$$$ is odd then Ashish will win else utkarsh will win. Following is my code :
Could some one help me in proving my solution for D.
UPD : It can be proved on lines similar to the editorial.
My solution of D in pictures
If the number of steps the game ends in is odd, A wins.
If the number of steps the game ends in is even, B wins.
The strategy is that either player will force the game to the middle for the desired ending.
How do you simulate the strategy of going to the middle? Can you explain
Just go the opposite direction of the previous player
it's not necessary that it should be in middle but main point was their max manhattan distance was same for all the winning points, hence middle is enough for proving.
Whoever created E, thank you! Brilliant problem!
-
F is poorly written
I think in Problem D the second player wins iff $$$\left \lfloor \frac{d^2}{k^2} \right \rfloor$$$ is part of https://oeis.org/A061887, based on small test cases. (Will have to try it later)
Edit:
It works: https://mirror.codeforces.com/contest/1451/submission/99193851
During the contest, I noticed something similar and quickly (bruteforce) generated results up to 100 to confirm. AC submission 99172404.
Problem E1 and E2 are excellent ! Nice problem <3
Thanks Ashishgup for such an amazing contest!! liked problemset
The overflow in binary_search caused wrong answer on pretest 8 in Problem D.
https://mirror.codeforces.com/contest/1451/submission/99164462
I had to use cpp_int or sqrt.
The sample case for hacking this is
OH my goodness this is the same mistake from me see the 99184377.
But I think this is a rectification of this overflow.
99129900 Solution A
This solution give RTE for prime no. greater than 10^6
But it passed in system testing
Spot the difference and feel the pain:
1) WA on pretest 12
2) Accepted
What a brilliant contest. The difference level between the questions was just perfect!!!
A good contest!!
Nice Round , really enjoyed it
Ashishgup make proud India. Love you sir♥️
simping spotted!! :((
Go on the mirror you can find him
good round. Actually on D I got wrong answer just because of type of d and k, when I change it into unsigned long long int, it perfectly worked, but in the statement it was written that d <= 10^5 and 1 =< k <= d. Can anyone explain this situation? thanks
unsigned long long int sul = d * d;
This won't work because d is integer.. d*d will overflow giving wrong value then the wrong value will be stored into sul.So you need d itself to also be long long before multiplying.
ahh thank you
The testing of E is so goddamn slow
10+ minutes to run the full set of tests O_O
Really don't understand what is the point of those huge arrays in the input if the whole task is not about performance
can someone please review my code for Circle game my solution : ( first I let Ashish and Utkarsh travel vertically(along y axis till (number of moves)*k<=d ) then I switched them horizontally ( along x axis till (the condition x^2 +y^2 <= d^2 holds true and updated number of moves ++ ) finally if number of moves are even Utkarsh wins else Ashish wins )(I am a newbie started coding this month please help ) here is my code :
please help!
Use Spoilers
Authors, please upload editorials!!!!
No editorials from last 2 contests :(((
It has been published long ago
It is not showing on my browser!
Anyone else facing this issue? Or is it just me super unlucky :(((
UPD: FOUND THE EDITORIALS :))))))))
The blog post is linked to a completely different contest lol.
Can anyone explain what's wrong with this simple approach for C ?
ㅤ
I like the round overall, but D seemed too adhoc-ish and just like in the previous one was solved by a lot of people without much reasoning. Except that this time I was one of those people.
To not keep you waiting, the ratings updated preliminarily. In a few hours, I will remove cheaters and update the ratings again!
Dear CodeChef_admin Learn something from Mike.
E was a really great problem. Couldn't solve it in contest time though.
.
Mike has said he will deal with the cheats
685 div 2: winner registered the same day. 684 div 2: winner registered the same day, used 3 different languages, and took 6 minutes to solve the long implementation question (c1/2) 682 div 2: winner was a newbie pre-contest
Am I the only person who finds this a little odd, or even suspicious? Are extremely good coders creating new accounts to win the contest? Is anyone able to explain the case with multiple languages and very dubious solve times?
many contestants are doing this thing and it's a bad thing !! We must get rid of these fake accounts, as they affect others
Anyone else to whom the rating changes seem suspicious?
Apparently, the CF Predictor was wrong calculating this round's deltas and took rating from 2 contests ago
cf-predictor told me I'd be orange after this contest... now it was a lie... :(
cf-predictor isn't using your latest rating to calculate the delta. Check the rating on which this contest's delta is based here.
So cf-predictor used a lower rating as input and got a higher rating as output?
No. cf-predictor used a lower rating (1718 < 1997) as input, showed a higher positive delta (+158 > +81) and got a lower rating (1876 < 2078) as output.
I submitted the same code for problem C which hit TLE again after the contest:
https://mirror.codeforces.com/contest/1451/submission/99178885 (rejected in contest)
https://mirror.codeforces.com/contest/1451/submission/99199972 (accepted after contest)
Is python just too unreliable with large inputs? I was already following the advice from here. It looks like plenty of submissions got through with nearly identical code.
I had this problem a few times. Usually adding the line
input = sys.stdin.readline
to your header code does the trick. If not, there are FastIO configurations with are worth considering for inputs as large as 10^6. Check out my submissions for the header code I use.
Isn't that the same as doing:
s1 = sys.stdin.readline().strip()
s2 = sys.stdin.readline().strip()
Which is what I had there. Normal input() failed pretest 2, so it is a massive improvement, but still doesn't seem to be enough.
I can’t be sure why one failed in contest but passed afterwards: that is indeed odd. But if you add that input = ... as header code, it is then used for everything. In your code, for each of up to 10^5 test cases, you’re still using normal input()
Couldn't upvote twice. Loved the ProblemSet.
Am i the first candy -> grandmaster?
Wait it's possible to get to grandmaster only with div 2 contests? wow
...
Looking at the Testers... should've uttered 'Versatile', did utter 'Colors!!'
Problem at position D should not be like this. It is like finding pattern, if you guess it right that yay!! otherwise you can't do anything.
You're not supposed to solve it by guessing.
These two solutions are no different from each other. I tried submitting one in PyPy (with fastIO) during the contest it recieved TLE for pretest 7 and was accepted without any fastIO in cpp later today.
PyPy solution
CPP solution
FML :) I wonder how conqueror_of_tourist goes on despite such hurdles.
Yes, Python, even PyPy3, is noticeably slower than CPP, and unlike some sites Codeforces doesn't make any allowance for this. It is, however, possible to solve this particular problem in very fast. See https://mirror.codeforces.com/contest/1451/submission/99324662.
Here is hindi video editorial for A to E2, with solutions and thought process. here
I've just read F and... WTF? How is it possible that it actually happened? It's a clear copy of 1149E - Election Promises. It's not stolen from any other website, but from CodeForces and this F doesn't have anything more than mnbvmar's problem. I know that it's not important if it comes to some easy problems or something, but this was the hardest problem on this round. Also, 300iq coordinated both of these rounds, that's really suspicious.
Please help i dont understand why my solion for E2 is marked similar to ptd. I sweat to god I came up to the solution on my own and didnt copy it from someone else, nor leaking it to ideone. Please help. MikeMirzayanov Ashishgup
I can attest to his innocence too. I used a local compiler during the contest and never have had contact with him before (we're in different countries). The system could have made a mistake because there are only that many ways of implementing a relatively trivial idea, one that doesn't use algorithmic ideas as well. Seeing his performance, I can tell that he would have received an okay delta, so I really hope that the writers and Mike would look into this.
221's solution: 99162733, my solution: 99173403. Even ptd also confirmed that he compiled his code locally and doesnt even know me (thank you). Please check it asap MikeMirzayanov Ashishgup
.
Happy for my first time to win in div2! XD
Where difficulties of problems of this contest?
Best problemset I've seen in months