**Hello, Codeforces!**

On Sep/12/2021 17:35 (Moscow time) we will host Codeforces Global Round 16.

It is the fourth round of a 2021 series of Codeforces Global Rounds. The rounds are open and rated for everybody.

The prizes for this round:

- 30 best participants get a t-shirt.
- 20 t-shirts are randomly distributed among those with ranks between 31 and 500, inclusive.

The prizes for the 6-round series in 2021:

- In each round top-100 participants get points according to the table.
- The final result for each participant is equal to the sum of points he gets in the four rounds he placed the highest.
- The best 20 participants over all series get sweatshirts and place certificates.

Thanks to XTX, which in 2021 supported the global rounds initiative!

The problems were written and prepared by shishyando and Artyom123.

We would like to thank these people:

- isaf27, the one who did a lot of things for the round to happen
- Shinchan01, Absyarka, Ziware, ijxjdjd, wxhtzdy, Kotehok3, ptd,physics0523, Igorbunov, kpw29, Kirill22, Monogon, pashka for testing
- Kirill22 for submitting many different solutions
- Monogon for being a VIP tester and his hilarious greetings in russian
- kpw29 for spending much time discussing the problems with me
- physics0523 for making researches about the tasks (as he always does)
- MikeMirzayanov for Codeforces and Polygon platforms and for his immeasurable contribution to the development of the community!

You will have **2.5 hours** to solve **8 problems**. As always, we highly recommend reading all problems. Moreover, we really hope you upsolve the problems after the round, there are some interesting things to find out!

One of these problems is interactive, please see the guide of interactive problems if you are not familiar with it.

**Score Distribution:**

**500** — **750** — **1000** — **(750 + 1000)** — **2000** — **2500** — **3000** — **3750**

**Editorial:**

**Winners**

System testing finished, congrats to the winners!

As a coauthor I need contribution

why contribution on profile just showing +38 even when you just got +362 on this comment only.

Law of diminishing marginal returns.

what is this?

CTC vs In-hand

As a devoted tester who tried to make the round better, I wholeheartedly invite you to the contest. Will be fun, I promise!

As a soon to be Candidate Master I need your love and support.

Agnimandur orz

Looks like there won't be rickrolling here, thank god

One of these problems is interactive.This round is going to be awesome. How do I know? Well, shishyando and Artyom123 made a round 6 months ago which unfortunately went unrated. That was one of the best contests I participated in on Codeforces. It had every single quality one could hope for. I even wrote about it after the contest https://codeforces.com/blog/entry/88750. If you also enjoy similar problems, you will love this one.

All the best to every participant. And thanks a lot to the authors!

As a participant, pls give me upvotes, its at -10 now ;-; wishing y'all high deltas!

In case you're not aware of it, below are some backup links of codeforces in case the main site goes down during the contest!

Safety Linksm1.codeforces.com

m2.codeforces.com

m3.codeforces.com

Oops, pressed downvote by accident

don't try to earn contribution begging for upvotes unless you're a tester, as you can see people don't like it just a useful advice)

This was all irony man was just trying to make someone laugh :D will share memes the next time

lol ok))

Will the universe balance my negative contribution with positive rating deltas? ;-;

As a problem researcher, I hope my testing is worth some contribution and a t-shirt. And of course, what I desire most is, your memorable experience in the round!

Can we testers expect for t-shirts ??

Again,

~~where are my pants~~Where memes??????????

here

As a tester, read all problems (and then solve everything).

Hope I can become GrandMaster after this Round.

You did it orz

Ngl , the meme announcement>>the actual one ;)

I hope I can change the color of my name in this round

Best Of Luck

I wanna get high rating!

As a tester, I found this round to be one of the most interesting rounds I've ever tested. Good luck and have fun!

Why does this makes me feel scared?

Coward! :P

please don't read last edit.

Nice! I was not serious though. :)

Don't read it.

Now when I look at it, after 2 years... I just feel like how dumb I was back then...

I wish I could delete my past comments... :_)

Sorry bro...

Why is the contest always at Sunday but not Saturday？

My first round in around 40 days. Waiting for negative delta :'(

I have a question why can't there always be a contest in one the two weekend days ? in other days I wake up early and I'm the type of a guy that if he wakes up early he spends the day like a zombie and when i come back from work I'm a exhausted and would do like shit in contests (I know I won't do that better if not but I'm doing worst than when I'm not tired)

of course let's not only put contests in weekends but maybe if there's a contest in friday shift it to saturday so it depends on the authors time ? or others don't agree with me with making a contest in weekends for some reason

What's wrong in having a contest in weekends like do you prefer to come back from work/college/school and participate or wake up when you want drink a cup of tea do some yoga and then participate in the contest wouldn't you perform better in that case?

For me, It is on Sunday night. And So, It's was good for me. You know, authors can't make everyone happy with time because of timezones. and different preferences. Try Atcoder maybe their contest timings suits you.

we dont care about you

it's a universal holiday so that would fit others time I'm not talking about my own time noob

~~noob~~boobBro, majority of us ( the peoples who share similar time to that of IST) are night owls, therefore we prefer this time... For me this is the best time for the contests to be commenced, If it would have had been on some different time, I don't know wether I would have been able to appear for it in the first place.

I didn't mean what hour the contest is but which day if it's Saturday or Sunday which most people don't have work/college/school they would have better focus because they're not tired from what their work

I can't say anything regarding this... On the days of contest I try to keep myself calm and try my best to keep my brain empty all day so that I can do best during the contest... I don't know whether it works or not but atleast I feel such... also, It is organised globally so It can't be on Sunday for everyone. Like it's Monday now in India but Sunday in America... so If you look closely, there are peoples who are giving the contests in adverse conditions, like at some places, maybe they need to wakeup at 3:30 am to give it... thinking about it, we are in much better position regarding the timing and days of the contests.

I hope to return expert after this round . Good luck to all of us.

why could this fucking stupid blue name so frequently hold contests?

Be like him

https://www.youtube.com/watch?v=aEyJRW2L7Gw

Is this round going to be rated for everyone?

yes

Will this be rated for div3?

yes bro

Why all the big contests are in sunday. I am the only one who is watching Premier League? :))

Am I the only one watching Italian Grand Prix ? :)

Who can tell me the range of rating in this game? I didn't see anything about rating in the game statement.

`The rounds are open and rated for everybody.`

Thank you very much！

I wished to participate in my first Global round but unfortunately, today is Navi vs Vitality finals : /. https://www.hltv.org/matches/2350388/vitality-vs-natus-vincere-esl-pro-league-season-14

This is my channel on youtube for problem solving that can help you :

https://www.youtube.com/channel/UCwlL7AyWLjUlrF6SHHB_nIA

that can help

in cheatingNo I don't upload any videos while contest

what about this?

Do you see any videos uploaded while contest Mr Conan ??

but what is the purpose of making such a vid on the contest? you should solve problems in that time

hope don't see "in queue" !

Do not make any submission. You are safe then :)

Amazing round well balanced quests.

I personally felt first 4 quests easy.

And so did most of the others according to number of submissions.

over all well balanced quests. And indeed this round is for everyone

Bruh speedforces

who is sus

This (div1 + div2) = div3

Actually, it was a good round. :)

Greedyforces

Is this approach correct for E

I got a silly runtime error in last minute.

https://ideone.com/ngaPsL

sample tests were quite good today :) ... lovely round authors

It took me at least 1 hour to understand what

exactlyD2 is meaning for.still, I don't understand what it's said.

How to solve F?

Best end points b/w each $$$a_{i}, a_{i + 1}$$$ (till where $$$a_i$$$ goes right, and till where $$$a_{i + 1}$$$ goes left) is independent of any other end points, it depends only on whether points $$$a_{i}$$$ and $$$a_{i + 1}$$$ each go left and then right or vice versa.

So we can just use an $$$n \times 2$$$ dp for this state (position, left then right / right then left), and just use two pointer to calculate the optimal split point between $$$a_{i}, a_{i + 1}$$$ in $$$O(n + m logm)$$$ time. Removing ranges that already cover some $$$a_i$$$ makes the implementation easier since every range is now strictly between some $$$a_i$$$ and $$$a_{i + 1}$$$. (consider $$$a_0 = -INF$$$ and $$$a_{n + 1} = INF$$$).

Detailed explanation of 'use two pointer'This takes $$$O(log m)$$$ time for each segment endpoint, resuling in a total of $$$O(n + m logm)$$$

Can some explain how to do the C problem in brief . I was getting WA on pretest 2 :(

Its always worth it to either leave a element alone or merge it with an adjacent one. Elements with mex 2 will always be alone and 0 and 1 should always be paired if they are adjacent. In that case, you just need to iterate through the indices and see if the previous one is the opposite of the current one and if it wasnt paired before to merge them.

some observations are:

so you can greedily scan the columns from left to right, if you encounter [1, 0] or [0, 1], just add 2 to your answer, if you encounter a [1, 1] ([0, 0], respectively) column, first examine whether the next column is [0, 0] ([1, 1], respectively)

Is it just me or the questions were actually simple today. I solved 5 of them for the first time.

Same here

How to solve E?

Think about the composition of your tree into buds. The optimal solution is always taking all of the buds and putting them one on top of the other. Each time you do this, the number of leaves in total decreases by one. That way you just need to count the total ammount of leaves — the total ammount of buds+1.

In this case, the answer is 2, right? Sorry if I misunderstood, but doesn't your approach say it is 1?

It should be (total amount of leaves (including leaves in buds) after removing all buds) — (number of buds).

That makes sense. Thanks!

F

Randomised strategy in G:

Answer is minimum over

The first is easy to compute. For the second, randomly pick 0 or 1 for every vertex, and take the sum of min-cost edge between two 0-nodes and the min-cost edge between two 1-nodes. I did offline dynamic connectivity to do this for every time step.

Complexity is like $$$\mathcal{O}(100\ n \log n)$$$ for $$$1 - \left(\frac{7}{8}\right)^{100} \approx 1 - 10^{6}$$$ chance to answer a query correctly. Barely fits TL. Somehow I also passed pretests with 50 iterations, but resubmitted 100 because I was too scared.

That sounds cool. My approach to find the two disjoint edges with smallest weight was:

Let $$$(u, v)$$$ be the edge with smallest weight. Take the next two smallest edges connected to $$$u$$$ and the next two connected to $$$v$$$. Also take the smallest edge $$$(x, y)$$$ that is disjoint from $$$(u, v)$$$. Somehow I convinced myself that the answer will be a pair of these $$$6$$$ edges. The only thing remaining is to find $$$(u, v)$$$ and $$$(x, y)$$$ for each query. For that I threw everything in a horribly messy segment tree that got TLE, but I'm guessing there is a better way.

I don't understand, why do you need dynamic connectivity?

I guess you don't need it, but I don't see how to do this without the $$$\log n$$$ factor and guess it's faster than going through in order with sets.

You can solve it with DSU with union by size + path compression to make that logn go down to ackerman inverse (and easier to code).

Basically instead of a set that gives you lower bound, use the DSU to merge the ranges and give you the lower bound.

I don't quite understand, how do you handle edge removals with that?

Before anything, have the edges ordered.

Then pass through edges in order. If the edge is good, then take the untaken positions in the range [l, r] that are alive and make them have the cost of this edge. The dsu is over the time of the queries, if we want to know the next untaken position after l then it's just the rightmost position in the component of l. Use up that position and unite it with the next position while it's <= r.

Thanks, I get it now. Cool trick!

Resubmit solution with $$$100$$$ iterations was the right decision. Probability of accept is $$$(1 - (\frac{7}{8})^{iteration})^{test\underline{ }count}$$$. Problem have more than $$$750$$$ test. With $$$50$$$ iterations probability of accept is about $$$0.39$$$, with $$$100$$$ iterations is $$$0.998$$$.

I don't understand one thing: isn't that the probability for 1 individual query? How does it pass, given that each test gives like 10^5 queries lol

I think that means that the tests don't have much variety of pairs of edges pairing up to give the min answer but idk

I think it's worse than that, and even with 100 I was lucky to pass.

If you have a case where initially there are some random 4 super expensive edges, then in query $$$i$$$ you add an edge between $$$2i$$$ and $$$2i + 1$$$ of cost $$$Q - i$$$, the optimal pair of disjoint edges to take changes after every operation, and for every one of those pairs you need some colouring where they are both monochromatic and different colours.

The events that you get correct answers aren't independent, but every second one is, so probability to succeed is at most $$$\left(1 - \left(\frac{7}{8}\right)^{iterations}\right)^{queries / 2}$$$ which for $$$Q = 10^5$$$ is already just 0.92...

A,B,C,D1 all felt like Division 3 level of difficult increments.

someone help me with A question ,this was my first contest

find the position of the median "pos = ceil(n/2.0)". before this position, consider all elements to be zero. So we have to distribute the sum s among the leftover places "left = n-pos+1". The answer simply will be "sum/pos". Since, if the sum can not be divided equally among the leftover positions, the remainder will be added to the positions greater than pos. As we are finding the median the array should be sorted non decreasingly at all times.

Inspired by the n=7, s=17 test case (optimal distribution: 0, 0, 1, 4, 4, 4, 4), My strategy is to put

the largest possible valueM over $$$\frac{n}{2}$$$ times. (to reach the median place)more formally, let's consider 2 cases:

so the largest possible median value M can be derived:

gogogofuxk & Psi_Reborn got it, thanks

can anyone tell why my this solution of C give tle https://codeforces.com/contest/1566/submission/128642893 ?

probably big overhead of recursion + overcomplicated + O(n*8) instead of O(n) + maybe cache misses

n = 10^5 na so i don't think recursion stack can be big enough to give tle.

Can we just appreciate this?Frankly, it looks like div3 gradient and this is not particularly good. I don't complain though

-100 rating prediction here just because I overcomplicated myself on D2 and couldn't debug it. Amazing round.

I guess pretest for D2 are very weak. My n*m*log(m) works in just 46ms. Expecting a lot of FST's there

Why would n*m*log(m) not work?

n*m*log(n) definitely would. i mean, my friend uses something different and got 600ms and he will probably FST. I pointed on n*m*log(m) time just to show that samples are not that good, because it should work longer (but still pass) at max test, i think.

Why would it? $$$O(n * m^2)$$$ is just $$$300 \times 10^5$$$ = $$$3 \times 10^7$$$ operations which should easily pass consider its not even something heavy like modulo. My $$$O(n * m^2)$$$ soln also runs in 46ms on pretests.

Ok, i was wrong, there is not much failed solution, but my friend got TLE, so i wasn't that wrong

but n*m*log(m) is like O(10^6), it should totally pass...

read my reply above, you misunderstood me

According to me O(n*m*m) will also work on an average. Don't know whether I will fst or not.

My O(n*m²) code works in just 62 ms: 128625308

Please don't spread fud, you will scare the noobs :(

Also even n^3 for n = 900 can pass in < 1 second on simple operations

I think score for D2 should be at least 1250

But if score for D2 was 1250,the total score of D would be equal to score of E, but E is much harder than D.

Is pretest too weak in D1 and D2 ? O(m^2) passed on D1 ?

Its strange that youre the second person saying that pretests were weak because a solution that should pass is passing

$$$n, m \leq 300$$$ in a given test. $$$O(n \times m ^ 2)$$$ is equivalent to $$$O((n \cdot m) \times m)$$$, we know the first term is bounded by $$$10^5$$$ and the second is bounded by $$$300$$$, the worst possible is $$$3 \times 10^7$$$.

yes, I have mistake in calculation

oh well, and I applied multiset pbds

I applied a separate Fenwick tree for each row :-)

$$$t <= 100$$$

Online judge is slow again today !!

not just slow bro, it's actually frozen on 16% :/

Gread round solve 4 problems for the first tme ever

easy!=good...

When is the rating coming out??

Some time after the problems are tested. Unfortunately there were a lot of submissions this round so I think this might be slowing down the process.

The first 5 questions of this contest (D1 & D2 separated) should be fine and easy to implement for intermediate coders.

The sixth question E (tree problem) is a little

complexsince not all cases of bud-leave trees are shown in the test case, but it should also be fine (check the editorial for solution).Sorry if my comment was sensitive to you.

They're my opinions on the difficulty of the problem.

Sure

Codeforces server right now

I'm at least happy it only went full potato mode now and not during contest :P

Meanwhile, G having 630+ (and counting) tests..

740+ and counting...is this the highest number of tests any problem on cf ever had :thonk: XD

Problem G systests o_0

A nice contest,i feel very good.

G has 753 tests but still I uphacked my solution...

And our beloved Systests have gone somehow. Take a look at the number of tests of this submission 128675942. Maybe something went wrong due to exceptionally large datasets? isaf27

I think that's why system testing was so slow

We added 750 more random tests just to hack some random wrong solutions (aka while not TL) for that problem. On polygon, such solutions failed with good probability, but it doesn't help on Codeforces (maybe faster testing machines).

To make it possible to upsolve the problem without 10 mins waiting we decided to remove these added tests.

Maybe system testing was slow because of this, but the size of the package for that problem was normal (25 Mb).

I don't think that adding tests during the contest after reading competitors' solutions and aiming at them is nice (and should be announced).

Also, mine and mango_lassi's solutions are provable (OK, mine is with greater TL), while in H I've implemented a poor heuristic, which maybe can be fairly hacked. I'm not sure that the priorities were good.

In H we had pretests = tests and of course, we doesn't change tests, because they won't be random in this case.

My opinion about changing tests: it is ok because it is the participant's problem, that their solution is incorrect. For example, we add all successful hacks to tests before system testing. Also, it is fairer to the participants who solved the problem correctly. In Codeforces with pretests format, you should understand that your solution may fail if it is incorrect (but passed pretests).

After that case, I understood that there is a big minus of this: some good randomized solutions like yours (that works with probability 10^(-3) for example) may fail after such "stress testing". I don't want to do such things in the future (with many tests) and will add tests only in case of single counterexamples to the solution.

I strongly don't agree. After years of experience I can tell that "probably tests are weak and something not exactly correct will pass" is a good assumption and a part of strategy (at least on CodeForces) which worked many times.

Of course, the best thing to do is to make this assumption wrong and make everyone forget about it, but adding tests during the contest is not a good way.

In H I totally forgot that the statement says that the tests are random, sorry for that.

If you are a contest setter/admin, please don't add tests from reading submissions in any situation. This contradicts the objective nature of programming contests. It also encourages people to obfuscate their code so that a coordinator won't be able to understand it and produce a countercase.

If you have ideas for tests to break bad random solutions, you should add them before the contest. Besides hacks (which are built into the contest rules) the tests should be finalized, and if there is an extreme need to fix the cases it should not be based on things realized during the contest.

It is a bit sad that this needs to be stated, especially to someone who is supposed to be overseeing other problemsetters.

IIRC obfuscating solutions are against the Codeforces rules.

And which are limited to people in your room, making it practically impossible to gang up on someone.

(And are almost non-existent recently, but that's another topic.)

This is so wrong.

You're seriously damaging competitive integrity by interfering fair competition :(

That's fucking stupid. I'll say it again to emphasise how fucking stupid it is: that reasoning is fucking stupid. Sorry, not sorry, there's no other way to put it because it's a topic that's been discussed to death.

You can add tests that break one solution but not another. For one contestant, you thus say "incorrect solution? your fault", while for another, you say "it may be incorrect but it passed tests so it's fine xD :P". That removes any trust in impartiality of judging — why should we trust that you're not focusing on someone in particular? If you make sure e.g. tourist's wrong solutions fail no matter what, then it's not fair to tourist because he's forced to play under different rules than everyone else. It's called fairness.

Both solutions hacked :|

Adding test data in the middle of a 2.5h contest is not OK.

In the sample 3 of D2, how the minimum answer is 4. Shouldn't it be 2 if we arrange people in this manner — 1 1 3 1 4 4 1 1 2

persons with lower eye sight should be given seats with lower numbers but in your sequence 3,4 is bigger than 1,2 one should consider the total sequence not for each sequence

We are sorry for a slow system testing.

Ratings updated preliminarily. We will remove cheaters and update the ratings again soon!

To easy D1 and C for global round, that's why it was fastforces, not code. But still, thank you for this round

imo first 5 were too easy

I screwed up because under the influence of problem B I interpreted C as "each column

valueis in exactly one bi-table". loldeleted

Since the official announcement isn't here yet and I'm an impatient person, I've decided to find out who won the t-shirts for myself.

As always, you can do the following steps to get the t-shirts winners of Global Rounds:

1) Download testlib.h from Mike's github repo.

2) Use it to compile randgen.cpp :

randgen.cpp3) Run the Python script winners.py, replacing the number in

`contest = []`

with the ID of the contest in question (in this case,`1566`

):winners.pyBoth of these scripts are taken from the official winners announcements in previous Global Rounds, but if you have any doubts you can always check these results against the official ones later.

With that out of the way, congratulations to the (unofficial) t-shirt winners:

Can somebody help me in finding a smaller test case in which this code is failing. This is the code for Problem D2. Thanks in advance:)

Congratulations to snuke for returning to LGM

(For not disturbing him I didn't ping his name)

thank you

Here is some feedback on the contest (a bit late).

I had fun participating. It was a well-balanced contest with good problems. Apart from adding tests to problem G, everything else was well prepared. Thank you to the authors.

Just a note about D2 — Looking at your submission (128615822) I think you overkilled the implementation. I felt it was much easier with regard to implementation than the average D level problem.

Example of an easy way to implement it — 128621602.

I was trying to hack this submission 128743016 to problem G, but it returned "Unexpected verdict" (hack 756413). I wonder if there are any problems in the system, or my input is invalid?

HackGood contest GG :>

My solution 128624580 for problem 1566C has been skipped due to some similarities found with other codes. I feel that such similarities are bound to happen in such types of questions. I compared my code with the people who have written similar codes, and I can definitely see some similarities, but these similarities are bound to happen, due to the nature of the question, as the logic was pretty straightforward, and not much can be done in order to write very distinct code. It is quite normal to use ans variable to store the final answer, run for loop to traverse through the string and update the ans variable. I don't think this is a case of any kind of plagiarism as this is highly possible when thousands of people are submitting their solutions. I have always been honest while submitting my solutions, and I can say that this is not a case of plagiarism. I request the admin to kindly accept my solutions, as they have been honestly written by me.

Yes, Same happens with me

Today I got a Notification that Your solution 128625122 for the problem 1566C significantly coincides with solutions milan0027/128625122, shalini_agrawal/128645632. I don't know why this happened. I didn't copy code from anywhere. I wrote my own solution. You may also compare the coding style of both the solution they are significantly different. If it's a system glitch kindly rectify it.

Today I got the notification that my solution 128612189 for the problem 1566C significantly coincides with solutions yashmittal19/128612189, ooz/128628009.Since ooz submitted solution around 25 minutes after me, so accusation is basically of sharing my solution. But I have not shared any of my code nor did I use sites like ideone. And even I don't know him. I don't know how to proof this but I have been giving contest regularly since last year and have never indulged in such malpractice. So I request admin to accept my solution.

I got notification that Your solution 128607740 for the problem 1566C significantly coincides with solutions Candidate_noob/128606285, deepanshu55/128607740. This is clearly a coincidence. I don't know how to prove that but problem logic was pretty straightforward and you can compare coding style with my previous submissions. I don't even know Candidate_noob.

Agreed. This should be fixed.

This is another comment about having received a notification of plagiarism in problem 1566C. I did not share my solution or use online code editors.

Sir, I recently got a notification about plagiarism in Codeforces global round 16 and the problem is 1566C and the notification says I got the same answer as the other contested but I didn't copy and not even shared the solution and not even got it from any publicly available codes I wrote it on my own and I even want to say that problem is so simple that its solution may come same for some people in that large participants. Please think about this and that's all I want to say, So please accept my solution. I hope I will get my rating back soon.

I got the notification from Codeforces stating "Your solution 128612338 for the problem 1566C significantly coincides with solutions apoorv17/128612338, sajjad.h/128647926." I have neither shared my solution nor ran it on ideone. I don't know the other person in fact we belong to the different countries. Since the problem was trivial so it can easily happen that two person use a similar approach, I don't have any proof to prove this but such false plagiarism claims and reverting the ratings wastes all 2-3 hours of effort and demotivates for further round. I think Codeforces should improve their plagiarism checker algorithm so that in future no false positives occur.

This must be really difficult to decide when thousands of solutions are nearly similar luckily my code is always so shitty that no other code is similar to it :P

MikeMirzayanov can you please update problem ratings of the last Edu and this Global Round? It's been 10 days.

MikeMirzayanov Hey, in the last global round , my solution for problem 1566C was flagged for plagiarism. I want to clarify that by no means I have written some one else's solution, and it was my own code that I wrote honestly. I don't even know the people who wrote codes similar to mine. The code is so small that similarities with others is possible. Kindly accept my solutions, as I have always been honest while giving the contests, and if such false flags are given against me, it will discourage me from being honest in future. I can literally see many other codes similar to me that were not reported. Kindly look into this. Hoping for the best. I have been constantly trying to talk to you, but I have received no response yet. I won't accept this injustice against me, I would not let my original codes be skipped due to false theories. The people who were flagged with me have got their ratings back, but not me. How is this fair?

Just to let everyone know that I know this guy personally and that the issue he is addressing is 100% authentic. He gives contests honestly and I too feel that his submissions should not have been skipped. I understand that plagiarism check is a hard job. You can never know with certainty if someone has copied or not from someone else. So this small margin of error can happen. But I believe that if someone is constantly trying to reach out for clarification, he/she must be heard. I hope that MikeMirzayanov looks into this soon.

Congratulations to tshirts winners! In a few weeks you will be contacted via private messages with instructions to receive your prize.

As usual, we used the following two scripts for generating random winners, seed is the score of the winner.

get_tshirts.pyrandgen.cpp