Hello Codeforces!
We have a pleasure to invite you to Codeforces Round #647 (Div. 1) and Codeforces Round #647 (Div. 2). This round will take place on 04.06.2020 17:35 (Московское время). In both divisions, you will have 2.5 hours to solve 6 problems. Three of them will be shared.
The problems for this round were prepared by MicGor, Grzmot, Okrut and me.
We would like to thank everyone who made this round possible:
budalnik for the excellent coordination;
Lewin, ALILILILILI-KHAN for invaluable advice and extensive testing;
KrK, yarek, -is-this-fft-, w0nsh, Marckess, Ari, Fortin, Dup4, craborac, 300iq, Sumeet.Shirgure, HIR180 for taking the time to test and providing useful feedback;
MikeMirzayanov for great platforms Codeforces and Polygon.
We hope you will enjoy the problem set! Good luck!
UPD: Score distribution:
- Div 1: $$$500$$$ $$$-$$$ $$$1250$$$ $$$-$$$ $$$2000$$$ $$$-$$$ $$$2500$$$ $$$-$$$ $$$3000$$$ $$$-$$$ $$$3500$$$
- Div 2: $$$500$$$ $$$-$$$ $$$1000$$$ $$$-$$$ $$$1500$$$ $$$-$$$ $$$2000$$$ $$$-$$$ $$$2750$$$ $$$-$$$ $$$3500$$$
UPD: Editorial
UPD: Congratulations to the winners!
Div. 1:
Div. 2
Below is a message for you from MikeMirzayanov:
With this round, we want to say thank you to Algo Muse for the significant contribution and support!
Algo Muse is an educational site that conducts online algorithmic contests in pen-and-paper style (no coding). It was originally started to help students prepare for theory qualifiers for graduate admissions. At present, the problems have a broader appeal, though occasionally an odd problem may require knowledge of linear algebra, probability, or group theory. The website is maintained by former students of IIT Bombay. To find out more, visit their website or their twitter account.
orz orz
Thank you students from Wroclaw
Where is the round "Sorry, Ivan Belonogov!"?
That might be the first ever div1 only contest.
Where is round "Sorry, Monogon!"? tbh
Btw ... why are you looking like forced for the profile picture arthurconmy ??...No offense mate ...Just curious !! XD
1) I like to have the same shirt colour as my handle (hopefully one day you'll see me in a red shirt). Some other users do this, e.g AnandOza (but I think I did it first :p)
2) I only really take photos of myself for strava, so I'd just been on a run
(strava is cool, and I'm not the only CF user there, I_love_Tanya_Romanova is some crazy endurance athlete)
I think I first did it on July 12th, 2019 (when I reached purple for the second time).
Btw, mine are all the same photo, just edited. (The original shirt is blue & matched my Expert rating when I started out, by coincidence, so after I changed color I had the idea to keep the matching theme.)
Thanks for the shoutout! :)
Some people messaged me to ask how I did this. I'm by no means an editing master, but here are the steps I figured out.
I used GIMP (free Photoshop equivalent). I used the selection tools to carefully select my shirt without selecting the rest of the picture (this was kind of tedious).
Then I simply used the Hue-Saturation tool (https://docs.gimp.org/2.10/en/gimp-tool-hue-saturation.html has an explanation). Instead of adjusting all the colors, I just adjusted the blue (to purple or orange or whatever) by changing the hue and saturation until it looked how I wanted. (The original shirt was blue, so this way it only adjusts the shirt and not any traces of my arm that I accidentally selected.)
hope so,this will be a great round
Hoping for gradual increase in question level from A to D. Rather than a very high increase from A to B and from B to C. Thank You for contest.

laraibkhan is a simple man, he sees the word hope, he posts this shitty meme!
yeah,he loves this meme, enough to post it multiple times.

Kids and cute memes can do no good. You are not safe here.. But remember hope is a good thing.
You, sir, do justice to the username.
Wow! Polish round! So proud :)
Thanks for the round :) :)
Ah shit. Here we go again!
Nah that level of spam won't happen here xD
Pred, I just finished Dororo. Dang it was a good one.
Yes, it is awesome :)
In parallel div1 and div2 rounds,Are participants rated above 1900 considered div1 or above 2100? Will this change after the new rating system is applied?
The participants rated 1900 and above are considered as div 1 in such rounds.
This will be good round :D
Hoping for a great contest!!(Especially for me xd)
Hoping for short and concise problem statements!
My general experience of 2.5hrs round. Statements are long. Large gap in questions levels difficulty.
I think the first 4 problems will be on the easier side as Div 2 D will be same as Div 1 A this time. Hopefully no sudden surge in difficulty
As a tester of this round, I can say that the problems are diverse and very interesting to solve. I found the problem statements concise enough and really liked the round, so I recommend others to have fun participating in this contest.
Following the trend, any review from the testers?
Consider a case if any of the tester wrote problem's are not good will you participate?
An acknowledgement from the testers boosts the confidence of the participants, nothing else ;)
Yeah but trolling them by writing it had became a trend will stop them to do so. Don't you think??
P.S. No offence:)
I think it is bad habit. Testers should not public comment before the contest. It adds no value.
I think that contest will be very exciting if you can hack so when testers give as such opportunity
Hope the setters provide short statements.
Ok so this round if from Poland !
So why is Errichto missing ????
I'm surprised too. I thought I'm the only Codeforces user from Poland.
your blogs and videos are very helpful for this community...as there are many boring programming streams which are quite useful...we can learn a lot from that...
Errichto was it too sarcastic or only I can see it.
only you can see it that's why 435 people upvoted it..
Now, you also being sarcastic. Lol!
I am _chandler_
No offense, I am saurabhyadavz
hi bing!
oh my god !
Could there "be" any more sarcasm!
How does this have so many upvotes?
because he is Errichto
Another Indian round. Check the writers profile.
Delusional
What does it have to do with the quality of the problem set? Furthermore, they're all Polish citizens so I'd rather call it a polish round.
Why Downvotes?
Anadi Anadi Agrawal is an Indian name and his skin is brown too(from the profile picture). So the guy is definately Indian. Nothing wrong with the comment.
In enlightened societies, it is common to attribute no cultural characteristics to people based on names or physical characteristics, because this is generally the motive when characteristics are used as abusive words.
From what I've observed about the so-called (and usually self-proclaimed in some way) "enlightened" parts of society, it's very much not the case, they just pay lip service to the idea.
Could you speak in simple words? I cannot understand your point. This is not an English class in school.
Sure. He says you're racist.
I meant it in a positive way, like " Hi , everyone . I noticed something and want to tell you about it." But poeple got me wrong fast. Everyone mistook it, because some who didn't know what I wrote downvoted. Nevermind.
Yeah dude, i know your intentions were pure just like mine. But people like nFlamel and spookywooky dont hesitate to label anybody a racist. It makes me sad! They would just label anyone a racist without even understanding what the comment actually means.
Yes , exactly.
What about the score distribution tho'?
It will be published later.
It was a misunderstanding. I apologized him for that.
He changed his post, you can see it's first revision, i misunderstood it(as i'm not good at memes), then i posted that comment, then he sent me a privet massage complaining about my comment and he said he meant that "we are happy to see lots of contests"(and then iv'e realized i was mistaken), then i apologized him and changed my comment. I don't know what is wrong/annoying. I'm pretty sure that its not hurting anyone etc.
You lost 30 seconds requesting people not to judge you.
Its a good habit when you are waiting for system testing, isn't it? :D
LOL that is so true
This website of algo muse has only 3 problems? what is this? is it under construction?
Open the past contests page — there are plenty of nice problems (with solutions)
I found it, but it would have been better if all problems queued at the problems page.
Anyway, thanks Algo Muse for the significant contribution and support to codeforces.
I think there might be something wrong with the time link. Normally a time link is rendered as the local time for the blog reader but this one isn't.
Thank you, fixed it.
Hoping for no geometry problems ....XD
Master Sumeet.Shirgure!!! you are master here too!!!
[Deleted]
What a meme XDXDXDXDXDXD
I wish for no long queues, as there is right now.
UPD: The queue was there when I wrote this comment.
Tank you Algo Muse, i really liked the site and problems, I really recommend it for Computing Olympiads as a Computing Olympiads participant. I have a question, how to submit in Algo Muse?
I hope I can solve problem C in div1 /rating++ !!
bilibill Hope keeps us moving

Aha!! Fucking Shit!!
Practice hard Buddy!! It's the key to success.
Hope I will get good results.
(Though often after the contest I cry:“Nooooo~,Why am I sooo noob~”)
same with me. I cry then I beat some meat from the kitchen. It's all good at the end of the day.
is it rated
Seems like your sorry ass never had one.You might have a chance if you don't copy someone else username too.
Thank,Algo ZBW (doge)
Missing this iconic line :- "Scoring distribution will be announced (just before the contest/later)".
Hope to solve c in this round...
Hope I can do well in my first Div.1 :)
[Help]
I am unable to register in Div-1 Contest. When I click Register It does nothing.
Because your rating is too low to participate in Division 1. Participate in Division 2 instead.
Believe me..it's for your own good.. XD
I wish high rating to all contestants and high contribution to writers ;)
Hey, guys!
Right after contest ends, we will discuss the problemset live on Algopedia: https://youtu.be/ZPQzYDf5A4Y
Good luck to all!
Hacked!
GG bruh, I figured out during the livestream that I messed up one case :))
Romeo, I took your advice and started wearing blazers while coding. Now my GF thinks that I am a psycho wearing blazer and shorts in the middle of the night. We broke up. Now I am crying. Y_Y
Thank you, Algo Muse! A very good website indeed. Thank you for your support.
Hope I can solve 3 of 6 successfully
Good luck to you all! :D
How many shared problems will be?
Three problems will be shared (announcement).
:(
Excited to solve the contest,happy coding.
Why so few registrants(compared with the previous several contests)?
May be people are going back to their regular life like before covid-19 in many countries.
Because of time (?
Only red and orange coordinators this time... 3rd question might me little more interesting
Where are the funny memes, why aren't they here?(.
I think it will not be interesting if this blog will be without memes (
I don't think memes are a good idea for a programming competition, not all people find them funny.
just before that, there were memes at many blog contests and many of these memes took a lot of plus(i don't think that they were not funny if anybody plussed);
Is this a rated contest or not?
None of the contests named as Codeforces Round #XX are rated.
[deleted]
Are you Sheldon Cooper ?
Looking forward to the contest. But I wonder why the number of registrations is less than usual.
Lockdown is getting over at many places. So people are getting busy with their daily works. That might be the reason behind less no of registration.
Most probably, Yes.
It is just around $$$20k$$$ both divisions combined.
tourist gonna make it to the top again today
I'm not sure exactly why, but Div 1C sucked all joy and happiness out of my soul. I haven't hated a problem this much in a while.
+++
The beauty of a connection of pearls in colors $$$u$$$ and $$$v$$$ is defined as follows: let $$$2^k$$$ be the greatest power of two dividing $$$u \oplus v$$$ — exclusive or of $$$u$$$ and $$$v$$$. Then the beauty equals $$$k$$$. If $$$u = v$$$, you may assume that beauty is equal to 20.
"Beauty"
I agree with you. The statement was boring. Moreover, the problem was stated quite weirdly and could definitely have been much simpler. Even though I got the solution a while before the end, I chose to sit back and enjoy the other problems rather than waste precious time implementing something that is so irritating.
(The other problems were good (Okay, really — B was just some implementation) though.)
It's quite standard, yeah. Try all possible answers — take the last $$$b$$$ bits, convert it into the domino cycle problem, find an Euler cycle.
why A->C are all the binary related problems?
Am I the only one who thinks that the gap between Div2-D and Div2-E was HUGE ?
I thought so but look at Div1 submissions (Div1A vs Div1B) :)
I think that problem statement for D was way too difficult to understand. That really did bridge up the gap
Is there a special reason why the limits have to be so high so Python solutions are too slow? I mean at div2D there is no reason to set the limit at 5*10^5 when classic 10^5 or 2*10^5 would work just fine. What kind of solutions are you trying to prevent setting the limits so high?
Otherwise a nice contest with interesting problems, but the TLEs at D and E completely frustrated me on this one ...
what a bitforces contest
Calling an arbitrary number in the input $$$p$$$ is not a good idea? I think $$$m$$$ or $$$a$$$ would be a more justified choice.
Statement for Div 2 D was a little unclear in my opinion..
Stupid D... They even changed the statement a bit.
Statements caused me 45 minutes to understand. Foolishness caused my rest 30 minutes.
Even after reading the same statement for 1Hr. Can't understand what is going on
"It should have 1 hour contest" -- my feelings after solving A,B,C :P
Anyone wasted time on B ignoring the sum of n over all test cases statement?
Around half an hour
me too
me too
whole contest...
Participants.
So your D failed system test. So prefer investing your time in checking for boundary cases inseting of posting this meme all time. You solved D on 8:56. So you were having enough time to atleast recheck your submissions(if you are unable to move further) but no you prefer showing off. Now enjoy failed system test
OK.
Never knew moms were on cf
What would be the rating of div2D
For Understanding : 3000 For solving: 1900
It took me out of breath to understand the clumsier statements. And then foolishness took me to search for dfs solutions having an easy greedy one. But, finally mananged to solve a D in a div2 contest.
Can you please explain your solution ?
There was a checker whether answer exists or not. Suppose we have node with topic x then for each of its neighbours 1) There must be at least one node must have topic ranging from 1 to x-1. 2) No neighbouring node has value x. If answer exists: Print all blogs which has topic 1 then 2 and so on. Solution Link: 82531854
a greedy solution will work.
initialise assigned array of size n and default value =0
now the nodes on the basis of required final topics
for each node from sorted list.
checking step : if x to be assigned to a node then all the values from 1 to x-1 should appear on the neighbours of this node (this step can be done using a set).
Probably 1600 or 1700. Even though the problem statement was confusing the implementation was pretty straightforward.
What was test case 9 on D?
Solved 5 problems for the first time!
I hope the pretests on D were strong. Last time there was a problem like that with large amounts of input, my code passed pretests but not system testing ;.; I made sure my scanner was fast this time but you never know -- it was around 1700 ms on the pretest so might be a bit tight/
Fingers crossed bro! Same here but 1107 ms. Note: I used customized fast IO.
Wow, congrats bro.
How to solve Div2E/Div1B?
Sort the $$$k_i$$$'s in descending order. Put the largest $$$k_i$$$ in the first set, then add the next few $$$k_i$$$'s in the second set until the sums are the same. Repeat this process until there are no more $$$k_i$$$'s to choose from.
The key observation is that when you have $$$p$$$ $$$p^{x}$$$'s, that's equivalent to having a single $$$p^{x+1}$$$. You can keep a list $$$L$$$ of all your $$$k_i$$$'s and combine the last $$$p$$$ elements once $$$L[m-p+1] = L[m]$$$ where $$$m$$$ is the current length of $$$L$$$.
My submission
You meant it is equivalent to have p^(x+1) and not (p+1)^x ?
Yes, thanks :)
I thought of a solution on these lines but was totally clueless since couldn't prove nor my intuition agree to this.
Any ideas on the proof that this should work?
Consider writing some number $$$X$$$ in base $$$p$$$. Then, $$$X = a_0p^0 + a_1p^1 + a_2p^2 + ...$$$. If any $$$a_j \ge p$$$, then we just add $$$a_j/p$$$ to $$$a_{j+1}$$$ and mod $$$a_j$$$ by $$$p$$$. At some point, all $$$a_j$$$ will be strictly less than $$$p$$$.
For every $$$k_i$$$, we're adding 1 to $$$a_{k_i}$$$. Because of the sorting order, this means that we'll always be adding values less than or equal to the largest $$$k_i$$$. Each contribution only adds 1 to some number of $$$a_j$$$'s where $$$k_i \le j \le k_{max}$$$, so we'll never overshoot the first set's sum.
I used the same logic but got WA on TC 7. Now I feel so bad. Could've been the first time I solved E.
How to solve E?
What was the point of making div1D a geometry problem? Forcing us to angle sort adds nothing to the problem.
It was initially a little bit different, and it just stayed in our heads in that form.
Did anyone else spend long hours debugging Div1C because they did not check whether the graph is connected when checking whether Euler cycle exists?
Still got no clue what happened in problem after reading div1A statement for three times.
I doubted my English Reading Skills after Reading Div2 D.
PS :I feel D was easy but difficult to decipher what is asked to do!
Same lol, I solved it at last but it's too late to submit
Idk how people solved C that easily I guess I solved it the hard way
I just feel : lets try doing this and it worked, then proof by pretests passed!
what was your logic?
I don't know how to explain it in English here's my Submission
Try writing some numbers (till 11 maybe ) in binary, now try to find out contribution from each bit position of all numbers to final answer. There can be at most 63 bits in number and contribution from the ith bit is n/2^i.
My code :
Speedforces for Div2
Mfw my first integer overflow bug after like $$$10^{9}$$$ years :PepeHands:
How to solve D2E?
is D1C/D2F finding the eulerian circuit based on the graph made by splitting the numbers into sets with equivalent last k bits? If so asking for an actual necklace seems kind of pointless.
Yes, and that's what makes asking for actual necklace useful. Otherwise you could guess conditions for euler circuit without really understanding solution, and it was an actual coding problem for once before d1 D! (I got stupid tle though...)
Yes. It is finding an Eulerian circuit.
However, the algorithm to actually find the circuit is a separate, and significantly harder algorithm than only checking whether the circuit exists.
May someone point me to resources for Graph Algorithms? I reduced it to the fact that we needed to find Eulerian circuit but did not know how to.
I think it's covered in pllk's Competitive Programmer's Handbook
Can someone please help me figure out my solution for Div2E fails hidden tests?
82562768
How can I test my solution before the system test's done?
Am i the only one that wasn't able to understand exactly what 2D was asking?
same here buddy... couldn't understand shit
Finally, I knew the meaning of D but havn't got time to solve it. Even got to know a wrong meaning of D took me about half an hour.
same
Sorry, probably we should just put the formal statement there.
no problem
any other suggestions, Sir ? The community will be blessed.
Even an example was not friendly enough to understand what question was asking.
& i thought that i was the only who was not able to understand this problem and cursing myself that my english is so bad. Believe me it took almost an hour to properly understand what the hell is this statement saying. Also i didn't read the line that references are bidirectional.
Div 1 C's statement could have been written better. The word "connection" was used to refer to both the connection between two pearls in a necklace part and a connection formed by glue. The statement also alternates between saying the glue merges two pearls into one and saying the glue forms a connection between two pearls. IMO it shouldn't be necessary to look at the sample in order to understand the problem. They should just said we have to form a necklace by gluing together pairs of pearls, and the beauty is the greatest beauty of each glue connection. This way it's clear that only the glue connections are counted.
DIV2 D is just like an English comprerhension which I always do to get pass the English level exam.
BTW, it's so frustrated to konw in the last few minutes before the contest is over that the points are only referenced with its neighbors not the whole graph which they can get to. Havnt got much time to solve the new realized D. Ratings down again :(
Imagine competing from a train and waiting till you exit a tunnel so you could submit.
You are lucky you even got internet connection. I once tried to do that and it sucked so bad.
4G on phone, the coverage isn't perfect but it's decent. There's supposed to be free wifi in the train, but it doesn't work... unsurprisingly.
Is there really so many tunnels in the route where you were travelling??
Which route were you in that tunnels were so frequent that it was affecting submissions??
No offense
Bruh Slovakia is mostly mountains. Trains go along rivers when they can, but sometimes it's just a mix of tunnels and thin valleys between mountains where no internet exists.
Can you justify the third line of your template :)
Imagine not to eat anything for about 12 hours and taking part in a contest in the last 2 hours. :(
spend over 1 hr on that B and finally got brute force accepted XDD!!
yeah, the only observation needed was that taking a number
k
greater than 1023 will make the xor with $$$a_i$$$ > 1023, and hence there is no chance to get the original array.Actually I was trying to come up with faster solution and then I saw leaderboard submissions for B were shooting like anything. So I thought maybe brute force will pass.. :D
tho C and D were easy so i was saved
Nice contest, i really liked the problemset. Thank you all who worked hard to make this nice contest.
I'm looking for the editorial :D.
Was Div1C pretest 13 anything special? I kept getting TLE. Edge case or a matter of optimiziation?
Whenever there is Euler cycle problem on CF there is always some high-rated coder that is surprised cause he got TLE. Such surprised coders include people like Yuhao or subscriber iirc. I can almost surely tell you without looking at your code that it has some bug making it work in sth like O(nm).
Yea that's likely it -- the euler cycle code in my TCR didn't compile so I wrote a new one from scratch. Asking for problems :'-)
The DFS implementation is best. It's obvious that it only visits each edge once because we pop_back edges and that it visits the whole graph because it's DFS. When it doesn't work, it needs to have such a stupid bug that it doesn't give right answers almost ever. Whenever I was able to write it in such a way that I'd believe that it works, it was always correct.
I didn't actually read your solution, but did you find out whether the Euler cycle code was the problem? I TLE'd on 13 as well and it turned out I needed to fix constant factor optimization (later TLE'd on 14 and 17 as well), but my solution didn't use Euler cycle code and had really high constant factor so perhaps that's why.
Yes it was as Swistakk suggested, the complexity was actually $$$O(nm)$$$. After fixing my euler cycle code it ran in half a second, so the timelimit seems fine to me. 82567726
"The magic glue allows Megan to merge two pearls (possibly from the same necklace part) into one."
The sentence above is from C. I looked over and over again at the statement and samples to find out what does it mean to merge two pearls into one. Could anyone help?
Me too, he meant to connect them. ( to then form a necklace at the end )
Div1C statement should be: "Given edges, numbers. Write Euler cycle. Hate answer recovery".
took me hours to understand 2D, I really hope it was more friendly and easy to read.
Can you explain your solution ?
I would love to, but still, it was last minutes implementation. I still worried if it can pass the system test or not.
Just use greedy technique start filling nodes in increasing value order 1->2->3.....so on. U will understand in better way if u will do some paper work.
turn out i got an accepted. So here's my implementation.
For each vertex, i find if it was possible to make this vertex have its topic. For vertex u that desired to be in topic tu, i check if the neighbors (adjacent vertexes) have every topic between 1 and tu − 1(inclusive). If vertex u is desired for topic 5, I check if the neighbors have at least a vertex with a topic between 1 and 4(inclusive). If there are no neighbors with topic x for 1 ≤ x ≤ 4, the answer should be "-1". If a vertex has topic 1 i just ignore it, because there is no topic below '1'.
It's also impossible to find a valid answer if a vertex has an adjacent vertex that has a same topic.
To find the permutation i used Dijkstra that sort vertexes by their topic(ascending) using a set. First, i push vertex with topic 1, next when accessing u if there is an adjacent vertex that has topic tu + 1, i also pushed the vertex into the set. Lastly when i accessed a vertex i push that one in vector to print the answer later. If i cannot visit all vertex then there is no answer.
I tried to explain as best as i could sorry for my bad english.
Edit: fixed some error.
same here
A friend of mine asked me to rephrase the question, so they could understand it better.
Maybe this could help others too.
There are N nodes with M bidirectional edges connecting them, each node has no "value" currently.
You can do an operation to a node, which is as follows: Define S as the set which contains all values of its neighboring nodes (that have values set to them), then take the smallest positive integer that is not in that set.
Edit : If set S is empty, the smallest positive integer would be 1.
Given the final values of all nodes, determine the order to do these operations to the nodes (each node can only be applied with an operation once) or if it is impossible.
What if the set is empty ? Btw great explanation, this is how problem statements should be.
If the set is empty, then we should take the smallest positive integer that is not in the set, which is 1.
Thanks for the feedback, I fixed it.
Where did i mess up in B: 82560946?
Can you please explain your approach I am not able to get what you are doing with this code ?
Brute force from 1 to 2050. And then checking if the resultant array after xor-ing has same elements as original array.
I think you messed up in frequency count in one place you are setting 1 for all the entries and when inside the loop you are using ++ which may be the cause ! You should have used Freq[i]++ in the first loop itself
I did that in my previous submission. Only difference is that i also handled the case for n = 1 in that. So, idk. :(
You also need to check how many a number appear in the desired set, not only if it appears in the set or not.
If I understand your code correctly, you should have checked f[x[j]] == freq[x[j]] instead of f[x[j]] == 1 && freq[x[j]] == 1. My approach was to sort the XOR-ed array and compare it with the original one element-by-element: 82500274
Edit: turns out you can even use the == operator for vector, which makes it even easier: 82567200
According to the statement, every integer in the set is unique so it must occur only once right?
Oops, right. Then I don't know either :-/
.
How to solve div2-D?
My solving: for each target number from least to biggest we trying to put this number to the vertices and check (using set and it`s size), is it smallest possible number and is it possible to put it to the current vertice.
Here is submission
Sorry for my english.
a greedy solution will work.
initialise assigned array of size n and default value =0
now the nodes on the basis of required final topics
Pick
topic
in increasing order and check if you can assign it to its respective blog(saycurr
). What to check : In the adjacency list are theblogs
referenced tocurr
. See what topics are assigned to theseblogs
. Find the smallest positive topic(saytemp
) not assigned to these blogs[You can find it in O(
blogs
)]. Read thisIf
temp == topic
assigntopic
tocurr
and continue. Else ans is not possible. Sorry if my language is unclear, for reference you can see my submissionAh! Submitted div2-D at the last minute. But server was busy. Several minutes later I saw that it did not get submitted.
For C : Why does "<<" results in overflow for finding power of a number? My solution failed for "1<<(i+1)" but worked for "pow(2,i+1)" // after contest :(
It should be
1LL << i + 1
.can somebody please explain div 2-D statement.
Does D2C answer fit in long long? i got wa on pretest 4 and then thought answer might not fit in ll, but time was over then.
I wasn't sure either, but it seems like it does: 82505887
Statement of C was terrible. But not in the "broken English" way, because English was fine, but it used a lot of confusing expression. Merging/gluing/chain/necklace parts etc. it was all very confusing. It took me about 10 minutes to understand the statement and 10 seconds to come up with the solution once I understood it.
Statement for Div2D was pretty hard to comprehend & difficulty gap between Div2D & Div2E pretty huge, but besides that I really enjoyed the contest!
Skipped div2C for div2D and ruined the contest. I am still not able to understand what question D is asking.
Sigh. Had over 1 hour to solve D, but just couldn't understand what it was asking for. Still don't..
What's wrong with this Div2 D / Div 1 A?
https://codeforces.com/contest/1362/submission/82556780
me too on pretest 5
it is the case when like we have to put 5 on the current node and its adjacent nodes contain 1 2 3 3.
Could you provide a concrete input/output example?
Here:
Isn't the answer supposed to be -1?
yup actually i also once got wrong ans on TC5 and then i found my algo is not working on that type of cases that i proposed earlier
Yeah, thanks. I can't find a small case for which it fails.
For the first time, I was on the verge on solving E during contest.
My logic was to first sort the numbers in reverse order. I'll always add the first number to the result. Then I maintain two variables
rem
andcurrency
.rem
denotes the number of elements equal tocurrency
required to make the result zero. In each iteration, ifrem
is greater than zero, I subtract the element from the result. Otherwise, I add the element to the result and setrem
to 1. I make sure to update bothrem
andcurrency
as required while I loop through the array. I could get 7 testcases to pass.Could you find the flaw in the code or the logic? 82557476
I don't know how but I get RTE for div2D/div1A. My algorithm is quite straight forward, but somehow get RTE when trying to sort g[u]: the list of adjacent nodes for node u in the increasing order of t[].
Can anyone help?. Here is my submission
Lol didn't notice that sum of n over all test cases will not exceed 1024. :P
XD i spend over 1 hr on that tho i finally got that!! i was lucky XDD
The questions were fun to solve. It should be called Codeforces Round #647 — The Bitmask.

I never knew what OEIS was !! LOL thanks for such an awesome resource
What does OEIS means? I solved it by observation.
Observation Enthusiast Intelligence Solving!
o_o
Omg, I'm not that cool
On-Line Encyclopedia of Integer Sequences® (OEIS®)
Could you please explain how C can be solved with the help of OEIS? What must I search for in OEIS?
Type the furst few terms of the sequence separated by commas
Thank you
Just search 1 2 1 3 on OEIS and you will get the formula- 2*n-countsetbits(2*n).
That is what actually I did but I took more time to solve C. I missed Master for 3!!!
Free Fall!!! I hope just don't die :(
I was done with Solution of B. P00R ME
My Code:
Can anyone figure out what extra things out i have done
There was no need of having array of size 2050, moreover you could have returned false even when b[i] exceeded 1025.
And you are declaring two new arrays in each function call, you could have done by declaring one global array and later modified it
Yaa Runtime could have been better. But to be honest they were not the factors which affected.
Consider this: $$$t=1000$$$ and $$$n=1$$$ for all tests. Now, you are resetting array $$$s$$$ for every check. So basically, for all checks, your code is using approx. $$$2*10^6$$$ operations $$$(1024*2050)$$$. Multiply this with the number of tests and you get $$$2*10^9$$$. Hence, TLE. Silly mistake. It can be easily overlooked. But one should have been cautious.
I guess this happened with all the solutions that got TLE after system tests. The pretests should have included this test.
Why do you expect that your O(N^3) solution should pass? Consider $$$t$$$ = 1000 and $$$n$$$ = 1 for all test cases and look at your submission you will get what i meant.
Ok Thanks
check line number $$$32$$$ $$$38$$$ $$$39$$$ here.
Hi guys, can someone help me find what's wrong on my code in div 2E/div 1B? It fails on test 4. (Submission: https://codeforces.com/contest/1362/submission/82560898 )
Explanation of my code:
I sort all the numbers in descending order. I only maintain the difference between the sums of the two sets, by storing their current power and the multiplier. First, I put the largest number on the first set (the difference is $$$p^{arr[0]}$$$, so we have $$$pow = arr[0]$$$ and $$$mult = 1$$$. After that, I iterate the array of the powers. Now, I handle various cases:
If the current number has the same power as the balance, I decrease mult by $$$1$$$.
If there is a smaller power, I try to convert the balance to that power. If at any time mult exceeds $$$n$$$, we are certain that if we continue subtracting numbers from our balance, it will always remain positive (for example if we have $$$pow = 3$$$, $$$mult = 50$$$ and $$$n = 20$$$ (and we know that all numbers that follow have pow <= 3), in the worst case our balance will end up with $$$mult = 30$$$ and nothing less!). So, we can calculate the answer from here directly!
Finally, if at any time we reach $$$mult = 0$$$, we know that the numbers have eliminated themselves and we have a balance of $$$0$$$. So, we can continue on the next number as set it as our new balance.
Any help appreciated!
UPD. It turned out that I messed up with the modulo operations. I am really considering writing a library for them, which I believe will reduce the time coding and the bugs that may arise on my code. Here is the accepted submission: https://codeforces.com/contest/1362/submission/82581223
I believe test case 4 is testing whether your code can handle when smaller power is equal to higher powers.
Similar test case I wrote:
It outputs 3, which I think it's correct.
We have $$$3^2 - 3 - 3 - 3 + 3 = 3$$$
I still can't get over the fact that people read, understood and solved Div1A/Div2D in 2 mins
Got 2 WA in system test. Worst experience so far. :(
Problem D video Editorial: Solution
+Div1D was nice
+Div1E was nice
-A got really confusing statement
-C got really confusing statement
+1 for
3rd
statementGreat Contest! however have 1 Question: Who was responsible for naming these problems ? :D lol
A: Johnny and Ancient Computer. B: Johnny and His Hobbies. C: Johnny and Another Rating Drop. D: Johnny and Contribution. E: Johnny and Grandmaster. F: Johnny and Megan's Necklace.
In some Polish tasks the main character is called Jasio, which we translated as Johnny
Can anyone explain to my why i got TLE for my submission on B? it seems like people with similar solutions got accepted.
Your submission failed probably because of map but few submissions failed because their complexity was O(t * 1024 * 1024). Their complexity were independent of n.
i've seen solutions using map in an even less efficient way and still got accepted , i could even link a few.
same happened with me . use int only instead of ll and it will pass. I usually use macro
#define int long long
, it failed on 7th test case in system testing. When i removed this macro ,it got accepted.Its strange.