CosmicNoise's blog

By CosmicNoise, 33 hours ago, In English

Our team from Indian Institute of Technology — Guwahati, comprising DestineDude, __Lazarus__ and me, is a clear victim of such an obvious mistake in the selection process for ICPC Asia Amritapuri Regional Contest via ICPC India Preliminary Contest that must and should be rectified to keep alive the ICPC standards.

We were All India Ranked 12th in the final ranklist after the first contest, 2nd in our institute (in Amritapuri) and 1st (in Chennai). We were quite happy with our performance and definitely were getting selected for both Amritapuri and Chennai Regionals (which we filled out for), until we got the news for the recontest and were disappointed, but still were confident enough to make it through the second time.

The Catch

  • Now, in the recontest we were All India Ranked 59th in the final ranklist and 3rd in our institute (in Amritapuri) and 1st (in Chennai), after solving 4 problems (clearly mentioning, solving and ACing "Small Indices" problem within the intended time complexity), and should have been surely selected for both the regionals again, but we aren't (in one of them as of now).
  • The funniest / silliest part: Another team from our institute, which solved only 3 problems and clearly performed worse than us, was selected instead of us. Yes, as silly as it sounds.

The Loophole / Glitch:

  • So, it turns out that in the second contest, the test cases for "Small Indices" problem were very weak, weak enough to pass O(N^3) solutions where O(N^2) was the intended and limiting time complexity. Now what's the best solution that the organisers could come up with?
  • A very obvious sounding, superficially thought of a solution, make two ranklists R1 and R2, first one with considering the small indices problem, second one without considering the same so that other teams whose ranks were affected due to some teams passing their solutions in cubic TC would get a fair chance and select teams from both according to the usual criteria for selecting in regionals and proceed with the union of both.
  • This rule is fair, until the word UNION is given its importance. Otherwise, it can (and has) produce absurd results.

What they did instead:

  • Literally kept the number of seats for the regionals nearly the exact same (increased only 19 slots) as they were before and selected roughly around and only 3 teams from each institute (which clearly violates the union criteria).
  • I completely understand and comprehend here the rules that they announced on their website for selection, where they kept a variable k<=4, and did not announce what k would be, but it is 3 in the most general cases according to the past year trends and it has to be 3 (morally) to keep the process fair this year.
  • This lead to this worst conclusion, which I could not have imagined in my worst nightmares. What happened now was they are not taking union of two sets of 3 teams each, instead they are taking a union of two sets of 3 teams each, ranking them according to the best ranks from both R1 and R2, and truncating off all the teams from the union except the first 3.

The result it produced (this is lowkey so funny, ironic & visibly WRONG):

  • Now consider two teams, T1 and T2 both from the same institute.
  • T1 solved 4 problems, bashing the toughest of among the four (Small Indices) within the intended time complexity, and T2 solved 3 problems (which doesnt include Small Indices). So now which team should technically get selected, obviously T1 (as you might say, but not the organizers) since it has solved entirely 1 problem more.
  • But, guess what, T2 is selected and T1 isn't.
  • So, here are the details.
    • T1 ranked 59 in R1 and 111 in R2
    • T2 ranked 106 in R1 and 21 in R2
    • Since T2 ranked better in R2 than T1 in R1, T2's best rank is considered (21) over T1's best rank (59) in selecting the third team for Amrita. But the main underlying fact that is getting ignored here is that this doesnt in any way reflect the relative performance of both of the teams and T1 has still clearly performed better than T2, by ALL means.

Some obvious fixes

  • There has to be some outliers like us in this system of rules who definitely deserved getting selected and aren't.
  • The only reason for which I thought that rejudging all the ACed solutions of the contest isn't as helpful was that teams that got AC during their contest won't try to rectify the solution (which might be buggy or inefficient), which they would have had they got any TLE or WA.
  • But the worst part is that, rejudging would take out those teams who submitted O(N^3) solution and got an AC on that, but not rejudging and splitting the original ranklist into two would take out teams like us, who submitted the solution in intended TC and were better than others who didn't submit or did submit in cubic complexity. It's very clear to decide what's worse.
  • Or increase the number of seats enough so that keeping k=3 and taking the union of both ranklists still accomodates every team.

Plea

If any official or anyone who has any influence over the selection list for the Indian ICPC regionals is reading this blog, please consider this as a humble request or make necessary changes to prevent teams like us from being victim of this selection process, and make any exceptions to rules to ensure equal fairness.

  • I have never felt so helpless and ruined in my life before. Being a victim of the system which clearly is wrong and buggy is just so sad. The Indian ICPC system can't conduct a proper contest (leave aside two chances to do the same) for advancing representative teams to the most prestigious ICPC. The system in which you perform so good (both the times) that your selection for going to regionals is almost certain and yet you see it all shattering off because of negligence of officials and their wrong policies.
  • I don't even know whom to blame. Maybe my parents who did not move out of India before I was born (yes definitely angered sarcasm intended).

UPD : Yes, they did make some accommodations to select some teams facing the same issues as us :)

  • Vote: I like it
  • +127
  • Vote: I do not like it

»
32 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by CosmicNoise (previous revision, new revision, compare).

»
32 hours ago, # |
  Vote: I like it +57 Vote: I do not like it

sorry i dont speak yapanese

»
30 hours ago, # |
  Vote: I like it -14 Vote: I do not like it

Although i support you with the point that they should have selected teams separately from r1 and r2,solving a problem in n^3 doestn't mean that you performed well than the other team(who knows the other team might have been trying for an optimal solution while you guys just bruteforced).In a way according to the other 3 valid questions they are still better than you

  • »
    »
    27 hours ago, # ^ |
      Vote: I like it +15 Vote: I do not like it

    He said they solved it with the intended time complexity, not n^3.

  • »
    »
    27 hours ago, # ^ |
    Rev. 2   Vote: I like it +9 Vote: I do not like it

    We spent more than 1.5 hrs with 2 wrong submissions and finally submitted n^2 solution.And only after that tried the GCD problem. Removing the problem completely overpowers those who solved with bruteforce as clearly they did this problem fast and could focus on other problems I have a simple question : Couldnt the judges do a simple task of rejudging the small indices problem with better test cases for the R2 ???

    • »
      »
      »
      24 hours ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      yes, making 2 separate rank lists invites really unfair placements.

      Couldn't the judges do a simple task of rejudging the small indices problem with better test cases for the R2 ???

      maybe manually weeding out n**3 solutions? (calls for even more uninvited problems but sure) I doubt adding test cases is really an option.

»
29 hours ago, # |
  Vote: I like it +10 Vote: I do not like it

Short statement :

T1 (this guy's team), T2 (other team)

T1 solved easier (x4 brute force), but more than T2. Because T2 (3 problems) is rainboy.

T1 beated T2 in R1. T2 beated T1 in R2. T2 selected.

  • »
    »
    27 hours ago, # ^ |
      Vote: I like it +23 Vote: I do not like it

    We solved the small indices within the intended bounds, not brute force. It's just that due to weak test cases others also passed with brute force, and we're paying the price of the cancellation of that question for R2. The other 3 problems solved were the same, we just were slower in those due to focusing on this question as well.

»
28 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Can anyone tell me, what was the minimum team rank for getting selected for amritapuri regionals? And what was the minimum number of questions to be solved correctly this year?I was the only team from my college and was able to solve only one problem,, but didn't got selected. Thanks

....

»
25 hours ago, # |
  Vote: I like it +17 Vote: I do not like it

If they solved small indices problem in intended time complexity then they should not be robbed of their place in the regionals.

»
24 hours ago, # |
  Vote: I like it +6 Vote: I do not like it

I think we should invoke appropriate ICPC global authorities. Posting blogs on codeforces is unlikely to help.

»
24 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

I agree that making 2 rank lists is far from good. But once a submission has been accepted in the contest, can they really change the outcome of that submission? (excluding cases like plagiarism/rule breaks)

If you made a submission mid-way and it got accepted, it is unlikely that you would touch that problem even if you know it is wrong/find a mistake or even if it is obvious that what you submitted was stupid.

Definitely, even trying a n**3 solution with the given constrains is stupid. But if if gets accepted, you would move on to the next question and not think about that problem.

My team submitted a n**2 solution (which I have been able to prove after the contest), however we made a really stupid mistake of taking t1+t2 instead of max(2*n+1,t1+t2) while working with the first 2 elements in the question. Our submission would definitely fail on exploiting this, but if we had gotten a wrong answer, we would have definitely corrected it.

At such, is rejecting our solution justified?

»
24 hours ago, # |
  Vote: I like it +20 Vote: I do not like it

Your argument makes sense, comparing max rank in the two ranklists seems absurd. Try to explain more clearly though. In our college also one team got selected above another in Amritapuri region because they had better max rank in (R2, R1), but worse rank in R1. Idk what a fix could be here because this is an entirely messed up situation to be in.

  • »
    »
    23 hours ago, # ^ |
      Vote: I like it +18 Vote: I do not like it

    Can take the union

  • »
    »
    23 hours ago, # ^ |
      Vote: I like it +37 Vote: I do not like it

    According to their own rules, it should be union. However, they clearly do not want to implement that :)

    • »
      »
      »
      23 hours ago, # ^ |
        Vote: I like it +9 Vote: I do not like it

      According to their rules, yeah. These 'rules' just don't make any sense to me lol.

  • »
    »
    22 hours ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes I mean splitting the ranklist only makes sense (and the closest thing which makes sense) if and only if a proper union is taken. If they dont want to increase the seats, then maybe manually check the code for the last problem and choose the valid ones(who solved 4) over the ones who are getting selected only because of R2(by solving 3).

»
23 hours ago, # |
  Vote: I like it +6 Vote: I do not like it

so they are saying one thing and doing another? lmao

»
23 hours ago, # |
  Vote: I like it -8 Vote: I do not like it

icpc mai bhi paiso ka khel chl rha hai kya :|

»
15 hours ago, # |
  Vote: I like it +11 Vote: I do not like it

I think this year's selection process was literal shitshow, what they could've done.... suppose 3rd highest ranked team in (R1) institute has 100 rank overall so every team in R2 with rank less than equal to 100 should've given chance in regional, I am not sure how many seats they would have to increase but this makes most sense me.(my teams was ranked 4 so we would have not selected for amritapuri by this as well but still i think this makes most sense)

still it's hard to believe that Rank ~80 in R1 is not getting selected but team with ~70 in R2 is getting selected

one more Doubt

»
14 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

The debate around the rank list splitting and union method really shows how critical test case quality is in competitive programming. Perhaps a better long-term fix for such issues could involve automating stringent stress testing pre-contest to ensure edge cases are robustly handled. It's hard to undo what's already done, but polishing the system for fairness in the future should be a priority!

»
13 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

If I understand correctly, all of this can be avoided in the future by making the testing system like in Codeforces. You have pretests and a system testing phase after the contest. That way, the admins can easily and fairly break wrong solutions.

»
6 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

One more re-contest(with properly planned problems and tested) is the only method I can see to give justice to so many deserving Indian programmers.

»
5 hours ago, # |
  Vote: I like it +5 Vote: I do not like it
UPD : Yes, they did make some accommodations to select some teams facing the same issues as us :)

So is your team selected now?