### Ashishgup's blog

By Ashishgup, 2 years ago,

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:

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:

• +1117

| Write comment?
 » 2 years ago, # | ← Rev. 2 →   +220 As a tester, I haven't tested yet.EDIT: I have just tested, and would like to say Ashishgup orz
•  » » 2 years ago, # ^ | ← Rev. 2 →   +226 As a tester, I knew that Monogon will be here for contribution:)
•  » » » 2 years ago, # ^ |   +173 As a contribution, give me Monogon. :)
•  » » » » 2 years ago, # ^ |   -35 me toooo
•  » » » » » 2 years ago, # ^ |   +14 I think twitter is more suitable for getting you the justice you deserve
•  » » » » » » 2 years ago, # ^ |   0 destroyed in seconds op
•  » » 2 years ago, # ^ |   +149 As a Digon you have my upvote
•  » » » 2 years ago, # ^ |   +274 Dad, you're embarrassing me
•  » » » » 2 years ago, # ^ |   +172 Nothing to be embarrassed of, I'm proud of the contribution you have and I see many more coming :)
•  » » » » » 2 years ago, # ^ |   +110 cute!
•  » » » » » » 2 years ago, # ^ |   +48 Hi Great Great Great Great Great Grand Father !!
•  » » » » » » » 2 years ago, # ^ |   +1 My curious mind wanna know relation between of yours Digon and Monogon
•  » » » » » » » » 2 years ago, # ^ | ← Rev. 2 →   -16 "mono" usually means one"di" and "bi" usually mean twoIts like with monochromatic and dichromatic
•  » » » » » » » » » 2 years ago, # ^ |   +2 What about Nonagon ?
•  » » » » » » » » 2 years ago, # ^ |   0 Father and son XD
•  » » 2 years ago, # ^ | ← Rev. 3 →   +60 As a (first-time) tester, my name is not in the list :(UPD: Now it is.
•  » » » 2 years ago, # ^ |   +20 As a tester me too.
•  » » 2 years ago, # ^ |   +151 As a first time tester, can I get some contribution?
•  » » » 2 years ago, # ^ |   +8 Sure :)
•  » » » 2 years ago, # ^ |   +83 I too am first time tester :p
•  » » 2 years ago, # ^ | ← Rev. 2 →   +28 Monogon is Donald trump of code forces!
•  » » » 2 years ago, # ^ |   +10 was it a Compliment or something else?
•  » » » 2 years ago, # ^ |   +84 He did make codeforces great again tho :/
•  » » 2 years ago, # ^ |   +11 In your CV/Resume make sure to mention "Past Job Experience : Tested more than half of the CF rounds."
 » 2 years ago, # |   +61 Well that was a pleasant surprise, yet another Ashishgup round :)
•  » » 2 years ago, # ^ | ← Rev. 2 →   -7 ORZ AshishgupAnd I wish all the best for all those who are going to give this round...
 » 2 years ago, # |   +3 Indian Round
•  » » 2 years ago, # ^ |   +23 ** Indian Round by Ashishgup
•  » » » 2 years ago, # ^ |   +39 **Indian Round by Ashishgup,Jeel_Vaishnav,FastestFinger,Utkarsh.25dec,the_hyp0cr1t3 and ridbit10
 » 2 years ago, # | ← Rev. 2 →   +44 .
•  » » 2 years ago, # ^ |   +44 The game will be played between Ashishgup and FastestFinger , I guess.
•  » » » 2 years ago, # ^ |   +13 In game, Ashishgup will play first move XD.
•  » » » » 2 years ago, # ^ | ← Rev. 2 →   +1 .
 » 2 years ago, # | ← Rev. 2 →   +39 If I am able to solve problem A easily then it's not a Ashishgup round i was expecting.
 » 2 years ago, # |   -28 Looks like Ashishgup didn't get placed LOL so he is setting up contests.
•  » » 2 years ago, # ^ | ← Rev. 2 →   +8 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 !!
•  » » » 2 years ago, # ^ |   -7 Chill bruh was making a joke.
•  » » » » 2 years ago, # ^ |   0 Fun fact: Jokes are supposed to be funny.(I know comedy is supposed to be subjective, but this was objectively unfunny.)
•  » » 2 years ago, # ^ |   0 These guys have 100 hrs in a day!
 » 2 years ago, # |   +25 AshishGup round:- Be ready for Interactive problems :)
•  » » 2 years ago, # ^ |   0 :D
 » 2 years ago, # |   0 there is div3 contest this month or not ?
•  » » 2 years ago, # ^ |   +5 Yes.. After 4 days div3 will be held. See the codeforces calendar. You can add it with your google calendar. It's so helpful.
 » 2 years ago, # |   -17 Another Indian Contest...... India OP!!!
•  » » 2 years ago, # ^ |   -103 you're right, it's very OverPopulated
•  » » » 2 years ago, # ^ |   -38 India Over Powered . . . . More population means more downvotes on your comment
•  » » » » 2 years ago, # ^ | ← Rev. 2 →   -46 yeah overpowered caste system, religious violence, corrupt low iq leaders, trashy education system, garbage filled streets....
•  » » » » » 2 years ago, # ^ |   -18 Though these all... We are doing exceptionally well in various fields... And you are commenting on the contest made by an indian...
•  » » » » » » 2 years ago, # ^ |   -12 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.
•  » » » » » » » 2 years ago, # ^ | ← Rev. 3 →   +3 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.
•  » » » » » » » » 2 years ago, # ^ |   +112 I'll probably be downvoted here but just being honest.I myself relied a lot on external sources.
•  » » » » » » » » » 2 years ago, # ^ |   +4 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.
•  » » » » » » » » 2 years ago, # ^ |   +31 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.
•  » » » » » » » » » 2 years ago, # ^ |   +3 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
•  » » » » » » » » » 2 years ago, # ^ |   +3 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.
•  » » » » » » » » » 2 years ago, # ^ |   +1 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
•  » » » » » » » » » 2 years ago, # ^ | ← Rev. 2 →   +6 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.
•  » » » » » » » » » 2 years ago, # ^ |   +2 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
•  » » » » » » » » » 2 years ago, # ^ |   +1 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.
•  » » » » » » » » » 2 years ago, # ^ | ← Rev. 2 →   +1 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
•  » » » » » » » » » 2 years ago, # ^ |   0 "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.
•  » » » » » » » » » 2 years ago, # ^ |   +8 Bhai, Hum aapko hi vote denge, aap election me to khade ho jayiye, kaha aap yeh competitive programming ke chakkar me phas gaye
•  » » » » » » » 2 years ago, # ^ |   0 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.
•  » » » » » » » » 2 years ago, # ^ |   0 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?
•  » » » » » » » » » 2 years ago, # ^ |   +3 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.
•  » » » » » » » » » 2 years ago, # ^ |   0 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).
•  » » » » » » » » » 2 years ago, # ^ |   0 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.
•  » » » » » » » 2 years ago, # ^ |   +10 Most people in any country don't start out in cp using their country's education system, at least I don't think...
•  » » » » » 2 years ago, # ^ |   +17 SALLE Bhosideke.
•  » » » » » 2 years ago, # ^ |   0 I am offended by something I completely agree with.
•  » » 2 years ago, # ^ |   +45 ah, whats an Indian round without a mandatory thread like this
 » 2 years ago, # |   +33 This guy Ashishgup has different level fan base.
 » 2 years ago, # |   +18 As a tester, I would highly recommend this round.
•  » » 2 years ago, # ^ |   -7 Machaya bhai!!!hrishabh314, dekh.
•  » » » 2 years ago, # ^ |   +8 aaj kal to kya hi kharab halat chal raha bhai ... itna assignments aur projects hai ki cc ho hi nahi pa raha!
 » 2 years ago, # |   +20 I think you should delete 'Announcement of Codeforces Round #359 (Div. 1)' ;)
 » 2 years ago, # |   +6 I just love Ashishgup rounds.
 » 2 years ago, # |   0 As a CP enthusiast, can I be a tester?
 » 2 years ago, # |   +3 Ashishgup Merging two approved Div-2 contests into one indicates we can expect round to be slightly hard and having more challenging problems?
•  » » 2 years ago, # ^ |   +12 It's a trap.
 » 2 years ago, # |   0 Welcome to another Indian round. I hope everyone good ratings.
•  » » 2 years ago, # ^ |   +8 you hope, but it's not possible that everyone will have a good rating.
 » 2 years ago, # |   0 Interesting math problems expected from these setters :P
 » 2 years ago, # |   -8 as a contestant, i want my losing rating back :)
 » 2 years ago, # |   +35 As a tester,
 » 2 years ago, # |   -24 Omg Indian round! So excited
 » 2 years ago, # |   0 Kinda like the 2:15/2:30 hr format for the rounds. Hope it stays ^^
•  » » 2 years ago, # ^ |   0 Trying to get the contribution .....
 » 2 years ago, # |   +10 Hope it's not like the last two rounds =)(specially the one who had c1 and c2)
 » 2 years ago, # | ← Rev. 4 →   +2 The great Ashishgup is back
 » 2 years ago, # |   0 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?
•  » » 2 years ago, # ^ |   0 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.
 » 2 years ago, # |   +2 Are previous rating changes rolled back? I can't see my rating changes for last two contests
 » 2 years ago, # |   +1 I'll participate
 » 2 years ago, # |   +14 Nikhil_Medam where you at?
•  » » 2 years ago, # ^ |   0 Probably giving a contest from your account.
•  » » » 2 years ago, # ^ |   0 I asked him give more but he said free boosting is over now ;_;
 » 2 years ago, # |   -6 Hoping to stay in div1
•  » » 2 years ago, # ^ |   0 gl
 » 2 years ago, # |   0 another bitforces will be happend
 » 2 years ago, # |   +1 A > B and wrong on test 2 whenever the problem setter is Ashishgup.
 » 2 years ago, # |   +5 ITS LIT!
 » 2 years ago, # |   -10 Hope that I'll get the lost ratings in this round :)
 » 2 years ago, # | ← Rev. 2 →   0 why Monogon gets this much upvotes more than any red?any reasons?
•  » » 2 years ago, # ^ |   +73 Because most other reds are smart and decided not to waste time farming contribution.
•  » » » 2 years ago, # ^ |   0 do you mean creating second account named diagon?(just a joke as I don't have any proof :rofl:)
•  » » » » 2 years ago, # ^ |   +24 I confirm it's not him, also there's nothing like "Diagon" it's digon
 » 2 years ago, # |   +14 Nice contest, thank Ashishgup and your team. Goodluck to everyone !!!
 » 2 years ago, # |   +25 Ashishgup orz.This guy has a different level fan-base.
 » 2 years ago, # |   +11
•  » » 2 years ago, # ^ |   +74 (Also, since I'm not a setter/tester of this contest, this is veryyy irrelevant)
•  » » » 2 years ago, # ^ |   +14 You can become one. Just join the stack outside Mr Gupta house.
•  » » » » 2 years ago, # ^ |   +3 *queue
•  » » » » » 2 years ago, # ^ |   0 Just ask any CF coordinator. Mr Gupta hates queue.
 » 2 years ago, # |   +15 Thank Ashishgup and your team for creating a contest for us ^_^Thank Codeforces for creating a contest site.Goodluck to everyone !!!
 » 2 years ago, # |   0 Just asking since E1's score is 1500, will it be easier than D whose score is 1750 ?
•  » » 2 years ago, # ^ |   +1 On last div2(not edu.) B's score was 1000 and C1's 750. Was C1 easier than B?
•  » » 2 years ago, # ^ |   -8 You don't trust scoring distribution nowadays. Especially not in Ashishgup's rounds.
 » 2 years ago, # |   -27 I hope there is no game theory problem.
 » 2 years ago, # |   +5 I am confident enough that this round is going to be div 1.5
 » 2 years ago, # |   +11 It's time for Ashishgup to make a jump in the top contributors list.
 » 2 years ago, # |   +1 Wishing high rating to all of you. Good Luck for the contest
 » 2 years ago, # |   0 good luck for everyone
 » 2 years ago, # |   0 Nice contest Ashishgup
 » 2 years ago, # |   +9 Got destroyed
 » 2 years ago, # | ← Rev. 3 →   +26 D has the similar idea with AGC002E.E1 and E2 is really interesting.Thanks for the contest :)
 » 2 years ago, # |   +2 How to solve C?
•  » » 2 years ago, # ^ |   +3 HintTry to store things in frequency array (number of times such charactor $c$ represent in string $s$) HintWe can always swap array whenever we want without affecting increasing work HintWe can only increase the whole $k$ charactors equal to $c$ if $c$ exists atleast $k$ times HintWe 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" Ugly code - But just for referenceint query() { int n, k; cin >> n >> k; string a, b; cin >> a >> b; vector f(26, 0); for (char c : a) ++f[c - 'a']; /// We can swap whenever we want | Compare from small to larger sort(all(a)); sort(all(b)); for (int i = 0; i < n; ++i) { int v = b[i] - 'a'; if (f[v]) { --f[v]; continue; } /// Currently a[i] = b[i] bool ok = false; for (int c = 0; c <= v; ++c) { if (f[c] >= k) { ok = true; f[c] -= k; f[v] += k; /// Increase c->v (k charactors as once) f[v] -= 1; /// Currently a[i] = b[i] break; } } if (ok == false) /// Invalid { cout << "No\n"; return 0; } } cout << "Yes\n"; return 0; } 
 » 2 years ago, # |   +22 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.
•  » » 2 years ago, # ^ |   +32 A is trivial. Look at the number of submissions
•  » » 2 years ago, # ^ |   +22 I got 4 WA on A and almost kill myself when got AC
•  » » 2 years ago, # ^ |   +26 LolSeems like you're new to Ashishgup rounds
•  » » 2 years ago, # ^ | ← Rev. 5 →   +33 it should not contain almost any observations, just implementing what you're reading 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.
•  » » 2 years ago, # ^ | ← Rev. 4 →   +16 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).
•  » » 2 years ago, # ^ |   0 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/ .
•  » » 2 years ago, # ^ |   +10 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.
•  » » » 2 years ago, # ^ |   -36 1 observation too much.
•  » » » » 2 years ago, # ^ |   0 I think A was easy but probability of WA was greater for A than usual
•  » » 2 years ago, # ^ |   +7 Many other A's in div2s are like that (not direct implementation). Its better that way maybe as there is also a div 3
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 I know that feelSpent 25 minutes and two WA on ABut somehow it was obvious for thousands of other contestants
•  » » » 2 years ago, # ^ |   0 I was so frustrated that I couldn't solve A. Ruined the whole contest for me. Solved B and went to sleep.
 » 2 years ago, # |   0 Thanks for the great contest! How to solve E2?
•  » » 2 years ago, # ^ | ← Rev. 2 →   +18 Let's say the answer array named A. Use the value of A[1] (which is at first still unknown) as a pivot, ask the xor value between A[1] to the rest of the number, and keep those values. At this moment, you already asked n - 1 queries.Then, look into your xor-s values, if there is at least two same xor result in different index (let's say index i and j), you can ask the and value of index i and j. The and value must be A[i] and A[j] since it is the same. Then conclude A[1] and the rest of the array. You only use in total n queries for this case.If there is no same xor values, then the array must be a permutations of 0..n-1. To find the value of A[1], you can use the index which has the xor value 1 and 2 to A[1], let's say the index is id1 and id2. Then, ask and 1 id1 and and 1 id2. From here, you know the correct bits of A[1] except for the least 2 bits. For the most right bit (the least one), you can use the result of and 1 id2 since the difference must only occur in the 2-nd least bit. For the 2-nd most right bit, use the result of and 1 id1 since the difference must only occur in the least bit. Last, construct A[1] and conclude the rest. You only use in total n + 1 queries for this case.
•  » » » 2 years ago, # ^ | ← Rev. 2 →   +3 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.
•  » » 2 years ago, # ^ | ← Rev. 4 →   0 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.
 » 2 years ago, # |   +2 How to solve D?
•  » » 2 years ago, # ^ |   +8 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
•  » » » 2 years ago, # ^ |   +3 please give proof.
•  » » » » 2 years ago, # ^ | ← Rev. 3 →   0 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.
•  » » » » 2 years ago, # ^ |   +1 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.
•  » » » » » 2 years ago, # ^ |   0 ok.... Thank you
•  » » » 2 years ago, # ^ | ← Rev. 3 →   0 Update: Solved. The problem is in my loop range. Why my code gets WA? My code
 » 2 years ago, # |   0 how to solve A ?
•  » » 2 years ago, # ^ |   0 if N is even then ans is 2 else ans is 3 base case is for n=1,2,3
•  » » 2 years ago, # ^ |   +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.
 » 2 years ago, # |   +10 How to solve problem E2 ?
•  » » 2 years ago, # ^ |   0 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 :((.
•  » » » 2 years ago, # ^ |   +5 This will not work.
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 Actually, there is a method to deal with 1451E2 - Битовые запросы (усложенная версия) 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 array a. If all elements in a are all disjoint, then the ans[1] must be the only number in [0, n - 1] which not appear in a~.(**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 query i, j, the return value will be ans[i], so ans[1] = ans[i] ^ a[j]Then ans[i] = ans[1] ^ a[i] for $2 \leq i \leq n$. Sadly, I had a handwrite mistake in my code and I'm not good at debugging Interaction problem, so I don't pass this problem in this contest. UDP: sorry, my method have a bug, thanks to ExplodingFreeze
•  » » » 2 years ago, # ^ | ← Rev. 3 →   0 Distinct xors will not be sufficient to calculate a distinct array, consider:xors:0 1 2 3This can be 0 1 2 3 OR 3 2 1 0
•  » » » » 2 years ago, # ^ |   0 Note that a[i] donate the return value of Queries XOR 1 i. so I don't understand you.
•  » » » » » 2 years ago, # ^ |   0 Sorry, I misread your original comment, check my updated comment now.
•  » » » » 2 years ago, # ^ |   0 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).
 » 2 years ago, # |   +11 WHAT THE HELL WAS PRETEST 2 OF C ..!!! :-(
•  » » 2 years ago, # ^ |   +1 +1
•  » » 2 years ago, # ^ |   0 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 :(
•  » » » 2 years ago, # ^ |   0 what is the value of k in this case?
•  » » » » 2 years ago, # ^ |   0 k=2, but I guess it would be the same when k=1
•  » » » » » 2 years ago, # ^ |   0 true
 » 2 years ago, # |   +10 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.
•  » » 2 years ago, # ^ |   0 In this D I used Hit and Trail LoL.
•  » » 2 years ago, # ^ |   0 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.
•  » » » 2 years ago, # ^ | ← Rev. 2 →   +6 This is solution to E ig. OP asked about D.
•  » » » 2 years ago, # ^ |   0 Sorry I think you misunderstood I was asking the solution to D not E1
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 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
 » 2 years ago, # |   0 That was an OP contest. Really good stuff.
 » 2 years ago, # | ← Rev. 2 →   +4 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?
•  » » 2 years ago, # ^ |   0 I use the same method and got passed, don't know about the actual test case tho.
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 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
•  » » » 2 years ago, # ^ |   0 Actually, if you know a1 xor a2, a2 xor a3, then you can know a1 xor a3 = a1 xor x2 xor a2 xor a3.
•  » » » » 2 years ago, # ^ |   0 So how can I find a1 anyway?
•  » » » » » 2 years ago, # ^ | ← Rev. 2 →   +3 SpoilerSUMAB = 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;
•  » » » » » » 2 years ago, # ^ |   0 What a bitwise math. Thanks!
•  » » » » » » 2 years ago, # ^ |   +3 ANDAC = ANDAB & ANDBC;Well, This is wrong.eg) a = 1, b = 0, c = 1a & c is 1 but (a & b) & (b & c) is 0.
•  » » » » » » » 2 years ago, # ^ |   0 Oh i get it, thats why i got wa4, thank you
•  » » » » 2 years ago, # ^ |   0 Ohhhhh.... damn.. sad I was v v close :(ty anyways!
•  » » » 2 years ago, # ^ |   0 if you know, a^b and b^c, then a^c = a ^ b ^ b ^ c, no need to query it. Same with &
 » 2 years ago, # |   0 How to do D :(
•  » » 2 years ago, # ^ |   +3 think about symmetry strategy, for example:(0, 0) =>(0, k) =>(k, k) =>(k, 2k) =>....
•  » » » 2 years ago, # ^ |   +1 Why is this working?
•  » » 2 years ago, # ^ |   +3 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.
 » 2 years ago, # |   +1 Anyone who faced issues (TLE) in C with python?
•  » » 2 years ago, # ^ |   +1
•  » » » 2 years ago, # ^ |   0 I used fast i/o during my second submission and still got tle on pretest 4.
•  » » » » 2 years ago, # ^ |   +1 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. import os,io input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline 
•  » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 Thanks! I'll take care of this in future.
 » 2 years ago, # | ← Rev. 3 →   -8 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: my code#include using namespace std; const int MOD = 1e9 + 7; const int N = 1e6; #define rep(i, b, n) for (auto i = b; i < n; i++) int query(int i, int j, string s) { int x; cout << s << ' ' << i << ' ' << j << "\n\n"; cin >> x; cout.flush(); return x; } void solve() { int n; cin >> n; int xyA = query(0, 1, "AND"); int xyX = query(0, 1, "XOR"); int xzA = query(0, 2, "AND"); int xzX = query(0, 2, "XOR"); int yzX = query(1, 2, "XOR"); int x = xyX | (xzX ^ yzX); x |= xyA; x |= xzA; vector v(n); v[0] = x; v[1] = xyA | (xyX ^ x); v[2] = xzA | (xzX ^ x); rep(i, 3, n) { v[i] = query(0, i, "AND") | (query(0, i, "XOR") ^ x); } cout << "! "; rep(i, 0, n) cout << v[i] << ' '; cout << '\n'; } signed main() { int _ = 1; // cin >> _; rep(i, 1, _ + 1) { // printf("Case %d: ", i); solve(); } return 0; } 
•  » » 2 years ago, # ^ |   0 You have to output a number from 1 to n for index... 0 isn't allowed
•  » » » 2 years ago, # ^ |   0 I'd tried with 0, but same message. And In the problem it is said the index is [0, n-1]
•  » » » » 2 years ago, # ^ | ← Rev. 3 →   0 Elements' values lie in $[0,n-1]$.
•  » » » » 2 years ago, # ^ |   0 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])
•  » » 2 years ago, # ^ |   0 The array is $1$-indexed.
•  » » 2 years ago, # ^ |   0 in your query, you have to docout << s << ' ' << i + 1 << ' ' << j + 1 << endlbecause the queries are one indexed.
•  » » 2 years ago, # ^ |   0 Got wrecked
 » 2 years ago, # |   0 How to solve F?
•  » » 2 years ago, # ^ |   +24 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).
•  » » » 2 years ago, # ^ | ← Rev. 2 →   0 Nevermind, I got the diagonals wrong. I get it now :)
•  » » 2 years ago, # ^ |   0 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
 » 2 years ago, # |   0 What was the logic for B?
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 HintYou need to replace each parts of substring with other subsequence in total-string HintWe just need to replace one part !Just need to check whether one of these condition are true Replace prefix-string in substring with one of the subsequence in the left Replace suffix-string in substring with one of the subsequence in the right HintWe just need to replace one charactor !Just need to check whether one of these condition are true Replace first element in substring with the rest on the left Replace last element in substring with the rest on the right Ugly Code - But just for referenceint query() { int n, q; cin >> n >> q; string s; cin >> s; string t = " "; t += s; vector > prefix_have(2, vector(n + 2, 0)); vector > suffix_have(2, vector(n + 2, 0)); for (int i = 1; i <= n; ++i) { prefix_have[0][i] = prefix_have[0][i - 1] || (t[i] == '0'); prefix_have[1][i] = prefix_have[1][i - 1] || (t[i] == '1'); } for (int i = n; i >= 1; --i) { suffix_have[0][i] = suffix_have[0][i + 1] || (t[i] == '0'); suffix_have[1][i] = suffix_have[1][i + 1] || (t[i] == '1'); } while (q-->0) { int l, r; cin >> l >> r; bool L = (t[l] == '1'); bool R = (t[r] == '1'); bool ok = prefix_have[L][l - 1] || suffix_have[R][r + 1]; cout << (ok ? "YES" : "NO") << '\n'; } return 0; } 
 » 2 years ago, # |   +4 How to solve C?
•  » » 2 years ago, # ^ |   0 HintTry to store things in frequency array (number of times such charactor $c$ represent in string $s$) HintWe can always swap array whenever we want without affecting increasing work HintWe can only increase the whole $k$ charactors equal to $c$ if $c$ exists atleast $k$ times HintWe 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" Ugly code - But just for referenceint query() { int n, k; cin >> n >> k; string a, b; cin >> a >> b; vector f(26, 0); for (char c : a) ++f[c - 'a']; /// We can swap whenever we want | Compare from small to larger sort(all(a)); sort(all(b)); for (int i = 0; i < n; ++i) { int v = b[i] - 'a'; if (f[v]) { --f[v]; continue; } /// Currently a[i] = b[i] bool ok = false; for (int c = 0; c <= v; ++c) { if (f[c] >= k) { ok = true; f[c] -= k; f[v] += k; /// Increase c->v (k charactors as once) f[v] -= 1; /// Currently a[i] = b[i] break; } } if (ok == false) /// Invalid { cout << "No\n"; return 0; } } cout << "Yes\n"; return 0; } 
 » 2 years ago, # |   +22 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 ;)
•  » » 2 years ago, # ^ |   +2 All the problems are quite tricky!
•  » » 2 years ago, # ^ | ← Rev. 2 →   +40 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.
•  » » 2 years ago, # ^ |   +16 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.
•  » » 2 years ago, # ^ | ← Rev. 5 →   +4 E1 was logically much simpler than D IMHO btw
 » 2 years ago, # |   -26 the difficulty level of questions in my opinion: D
•  » » 2 years ago, # ^ |   +34 The problems where all more or less like: Find the key observation and solve easyly, or die.
•  » » » 2 years ago, # ^ |   +3 I'm getting downvoted by those who found the key observation haha.
•  » » » » 2 years ago, # ^ |   +4 may be you are wrong . i completed a,b,c under 30 mins and couldnt get any idea about D for rest of 2hrs :(.
 » 2 years ago, # |   0 Am I the only one who thinks D is easier than C?
•  » » 2 years ago, # ^ |   +4 Please explain your approach for D!!
•  » » » 2 years ago, # ^ |   -9 99186053 look at this code.
•  » » » » 2 years ago, # ^ |   0 Are you going in a staircase manner?
•  » » » 2 years ago, # ^ |   0 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!
•  » » » » 2 years ago, # ^ |   +4 Why does this work?
•  » » » » » 2 years ago, # ^ |   0 Yeah same question!! Why is this working?
•  » » » » » » 2 years ago, # ^ |   0 see this comment comment
•  » » » » » 2 years ago, # ^ |   0 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.
•  » » » » 2 years ago, # ^ |   +3 99136653 here is my submission!
 » 2 years ago, # |   +4 How to solve Z?
 » 2 years ago, # |   +25 Problem F is very similar to problem 1149E. (https://codeforces.com/contest/1149/problem/E)
 » 2 years ago, # |   0 How to solve B? It was harder than A and C for me lol
•  » » 2 years ago, # ^ | ← Rev. 2 →   +16 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].
•  » » » 2 years ago, # ^ |   +1 HintTry to store things in frequency array (number of times such charactor $c$ represent in string $s$) HintWe can always swap array whenever we want without affecting increasing work HintWe can only increase the whole $k$ charactors equal to $c$ if $c$ exists atleast $k$ times HintWe 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" Ugly code - But just for referenceint query() { int n, k; cin >> n >> k; string a, b; cin >> a >> b; vector f(26, 0); for (char c : a) ++f[c - 'a']; /// We can swap whenever we want | Compare from small to larger sort(all(a)); sort(all(b)); for (int i = 0; i < n; ++i) { int v = b[i] - 'a'; if (f[v]) { --f[v]; continue; } /// Currently a[i] = b[i] bool ok = false; for (int c = 0; c <= v; ++c) { if (f[c] >= k) { ok = true; f[c] -= k; f[v] += k; /// Increase c->v (k charactors as once) f[v] -= 1; /// Currently a[i] = b[i] break; } } if (ok == false) /// Invalid { cout << "No\n"; return 0; } } cout << "Yes\n"; return 0; } 
•  » » 2 years ago, # ^ |   0 Check my simple solution
•  » » 2 years ago, # ^ |   0 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 ?
•  » » » 2 years ago, # ^ |   +1 $n=1:0$ moves. $n=2:1$ move: $2-1=1$. $n=3:2$ moves: $3-1=2,2-1=1$. $n>3$ and $n$ is even:$2$ moves: $n\div \frac{n}{2}=2,2-1=1$. $n>3$ and $n$ is odd:$3$ moves:$n-1=n-1, n-1 \div \frac{n-1}{2}=2,2-1=1)$.
•  » » » 2 years ago, # ^ |   0 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$.
•  » » 2 years ago, # ^ |   0 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 ?
•  » » » 2 years ago, # ^ |   0 HintTry to store things in frequency array (number of times such charactor $c$ represent in string $s$) HintWe can always swap array whenever we want without affecting increasing work HintWe can only increase the whole $k$ charactors equal to $c$ if $c$ exists atleast $k$ times HintWe 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" Ugly code - But just for referenceint query() { int n, k; cin >> n >> k; string a, b; cin >> a >> b; vector f(26, 0); for (char c : a) ++f[c - 'a']; /// We can swap whenever we want | Compare from small to larger sort(all(a)); sort(all(b)); for (int i = 0; i < n; ++i) { int v = b[i] - 'a'; if (f[v]) { --f[v]; continue; } /// Currently a[i] = b[i] bool ok = false; for (int c = 0; c <= v; ++c) { if (f[c] >= k) { ok = true; f[c] -= k; f[v] += k; /// Increase c->v (k charactors as once) f[v] -= 1; /// Currently a[i] = b[i] break; } } if (ok == false) /// Invalid { cout << "No\n"; return 0; } } cout << "Yes\n"; return 0; } 
•  » » 2 years ago, # ^ |   0 HintYou need to replace each parts of substring with other subsequence in total-string HintWe just need to replace one part !Just need to check whether one of these condition are true Replace prefix-string in substring with one of the subsequence in the left Replace suffix-string in substring with one of the subsequence in the right HintWe just need to replace one charactor !Just need to check whether one of these condition are true Replace first element in substring with the rest on the left Replace last element in substring with the rest on the right Ugly Code - But just for referenceint query() { int n, q; cin >> n >> q; string s; cin >> s; string t = " "; t += s; vector > prefix_have(2, vector(n + 2, 0)); vector > suffix_have(2, vector(n + 2, 0)); for (int i = 1; i <= n; ++i) { prefix_have[0][i] = prefix_have[0][i - 1] || (t[i] == '0'); prefix_have[1][i] = prefix_have[1][i - 1] || (t[i] == '1'); } for (int i = n; i >= 1; --i) { suffix_have[0][i] = suffix_have[0][i + 1] || (t[i] == '0'); suffix_have[1][i] = suffix_have[1][i + 1] || (t[i] == '1'); } while (q-->0) { int l, r; cin >> l >> r; bool L = (t[l] == '1'); bool R = (t[r] == '1'); bool ok = prefix_have[L][l - 1] || suffix_have[R][r + 1]; cout << (ok ? "YES" : "NO") << '\n'; } return 0; } 
 » 2 years ago, # |   -7 amazing round difficulty level of each question was up to mark
 » 2 years ago, # |   -16 D is a bulshit. It's all my words about this contest. Sorryyyyyyy
•  » » 2 years ago, # ^ |   +32 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).
•  » » » 2 years ago, # ^ |   +14 These problems might not favour you, but it can be argued that they give higher chances to lower rated people.
•  » » » 2 years ago, # ^ |   0 I can agree with you. After reading D I immediately go to E1. This intuition problems really rage me.
•  » » » » 2 years ago, # ^ |   0 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 solution2) 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.
•  » » » » » 2 years ago, # ^ |   0 You are absolutely right. But I have looked for reason why I was bad in this CF. I have already released my emotions.
•  » » » » » 2 years ago, # ^ |   +3 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
•  » » » » » » 2 years ago, # ^ |   0 Yea,at times even for experienced coders, it just doesn't strike.Btw can you elaborate on your soln for D ?
•  » » » » » » » 2 years ago, # ^ |   0 Assume the optimal strategy is right, up, right, up, ... done.
•  » » » » » » » » 2 years ago, # ^ |   0 lol, how did you arrive at it ? I mean there are so many such constructions, why did you pick this ?
•  » » » » » » » » » 2 years ago, # ^ |   +9 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...
•  » » » » » » » » » 2 years ago, # ^ |   0 that's a great way of arriving at it
•  » » » 2 years ago, # ^ |   -11 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.
•  » » » » 2 years ago, # ^ |   +9 That is not a proof...
•  » » » 2 years ago, # ^ | ← Rev. 2 →   0 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.
•  » » 2 years ago, # ^ |   +8 Lol it seems like many high experts and candidate masters lost rating today according to this comment section
•  » » » 2 years ago, # ^ |   0 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.
 » 2 years ago, # |   0 try to find the bug and feel that painMaybe time to quit CP :)
•  » » 2 years ago, # ^ |   +8 counter test for you array is (1,1,1,1) n = 4 your output is (0,1,1,1) 
•  » » » 2 years ago, # ^ |   +3 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
 » 2 years ago, # |   +2 WA on pretest 2 legacy continues ..
 » 2 years ago, # | ← Rev. 2 →   +117 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)$.
 » 2 years ago, # |   +3 This was my second contest.Nice problems are given. Loved to participate in it.
 » 2 years ago, # |   +14 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 :)
•  » » 2 years ago, # ^ | ← Rev. 2 →   +1 Different people prepared those 2 problems iirc, that's most likely why.
 » 2 years ago, # |   0 Hi, everyone. It confused me for a long time. I wonder why this 99184980 got ILE on test 3.
•  » » 2 years ago, # ^ |   0 Seems like cout is not flushed so not inputs are provided.
•  » » » 2 years ago, # ^ |   +3 I think cout is flushed by endl. T_T
•  » » 2 years ago, # ^ |   0 Maybe it's because you queried twice without reading the result of the first query?
 » 2 years ago, # | ← Rev. 2 →   -7 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 :(
•  » » 2 years ago, # ^ |   +3 I don't think XOR 1 2 XOR 2 3 XOR 1 3 is enough information for find out what is a2
•  » » » 2 years ago, # ^ |   +1 I was kinda skeptical too about it, but on trying in random numbers it works. code for getting second element//a is the first xor, b is the second and c is the third //num is the second element for(ll i=0;i<25;i++){ ll b1=0, b2=0, b3=0; if((a&(1<
•  » » 2 years ago, # ^ |   0 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
•  » » » 2 years ago, # ^ |   0 If first 3 elements are same, the third xor will not be 0
•  » » 2 years ago, # ^ | ← Rev. 2 →   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.
•  » » » 2 years ago, # ^ | ← Rev. 2 →   0 code#include using namespace std; #define ll long long int #define pb push_back #define mp make_pair #define deb(x) cout<< #x << " " << x << "\n"; #define MAX 9223372036854775807 #define MIN -9223372036854775807 #define PI 3.141592653589 #define setbits(n) __builtin_popcountll(n) #define mkunique(a) a.resize(unique(a.begin(),a.end())-a.begin()); const ll mod=998244353; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ll T=clock(); ll n,a,b,c,d; cin>>n; cout<<"XOR 1 2"<>a; cout<<"XOR 2 3"<>b; cout<<"XOR 1 3"<>c; ll num=0; ll tot=3; vector ans(n+1,0); for(ll i=0;i<25;i++){ ll b1=0, b2=0, b3=0; if((a&(1<>k; tot++; assert(tot
•  » » » » 2 years ago, # ^ | ← Rev. 3 →   0 Have you tried the case of this? 3 1 1 1 
•  » » » » » 2 years ago, # ^ |   0 It works
•  » » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 I wonder... I tried your code in my system, for the case of 3 1 1 1 the interaction will be like this, isn't it? in: 3 out: XOR 1 2 in: 0 out: XOR 2 3 in: 0 out: XOR 1 3 in: 0 out: ! 0 0 0 out; out: TIME: 0.000616 sec 
•  » » » » » » » 2 years ago, # ^ |   -9 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
•  » » » » 2 years ago, # ^ |   0 $[0,0,0,0]$ , $[1,1,1,1]$, $[2,2,2,2]$ , $\ldots$ are indistinguishable.
•  » » » » » 2 years ago,