# ZCO 2019 Discussion

I’ve attached a spreadsheet for ZCO 2019 Scores. Please update this Spreadsheet after you finish the ZCO 2019 Contest. Solutions can be discussed here after the contest.

Important Notice: This is not an OFFICIAL Ranklist. It is for discussing and estimating cutoffs for ZCO 2019 amongst the participants before the Official Results are announced by the Organizers of ZCO 2019.

@lokesh2002 had already made a spreadsheet, which also has the scores for ZIO. Please replace yours with his, as it’s better to have all the scores in one place.

@kristopher

@kristopher
Everyone on ico whatsapp group have this link,and it can be used for all three
Zio/Zco/INOI. why a new one?.

How did you do the first problem(singing competition)?
I did it with brute force, and it was partially accepted.

@jagoshom I got a 40 point solution.
What I did was visualise the ranges on a straight line.Since there can’t be any draws the pair with the lowest lower range should have the highest upper range as well.So I stored the ranges in a vector of pairs and sorted the vector. The ans for the ith is 2*(n-i-1). Then I undid the sorting.
Someone help me with the 100 point solution please.

I did a brute force for the 15pt one, for the 40pt one I did the sorting thing but I did not get the right answer because I was not able to output the answer in the original order.How did you overcome this problem?

What was the method for the first one?

I had hell of a time figuring out the way to undo sorting. I finally kept 1 ordered map where keys were elements and values were all 0. And seperately stored the original order in a vector. I then printed 2*(N-i-1) for each i.

@kayak your code is difficult to understand since it is uncommented. Just post your logic

@bdyutish How did you undo the sorting?

You need to watch Baahubali to understand the code properly.

Damn shouldve known that :o

@jagoshom I kept a map of pairs as keys and the original indexes as values.You calculate the ans for the sorted vector and assign the answers to an array in the original location using the map.

Well, as far as i heard the first problem, basically it was for each range, count total number of ranges lying totally inside it and number of ranges partially overlapping with it. Both can be solved quite easily using merge sort trees or persistance or any other 2D DataStructure of your choice. That would have made this a blind implementation problem. the intended solution is probably using some binary searches, using which u can determine how many ranges are outside ur boundary and how many are inside. PS: work out the details urself.

I just hope the cutoff is 15.

Can anyone tell me the solution for the first problem? Some where saying using mergesort…

Please post your solution for the first problem if anyone solved it fully. code not needed. thanks.

1 Like

Here’s my code for problem 1.

The logic is pretty simple.
Construct two arrays of pair of integers, L and R.
In the first position of each element l of L we put in the value l we receive and in the second position, we put in the index. Create a similar array for R.

Now sort the array L in decreasing order, and R in increasing order.

The score of the i-th person would be the sum of the positions of its corresponding l in L and its corresponding r in R.

For example, if n = 3, and the l and r values are

(10, 20), (13, 15), (14, 16)

The L and R would be, after sorting,

L: (14, 2), (13, 1), (10, 0)
R: (15, 1), (16, 2), (20, 0)

Now, \text{score}[0] = 2 + 2 = 4, \text{score}[1] = 0 + 1, \text{score}[2] = 1 + 0.

Though sadly I was getting WA in the test itself, I have no idea why. My logic is sound.

So, I just wrote a quick brute-force solution and got 15.

1 Like

Can grp admin pls upload the link to the ICO WhatsApp grp? Also @kristopher , people are uploading their marks in both the spread sheets. Pls copy the data till now, and delete one, else analysis is going to get pretty messed up.

Is there any chance the cutoff goes down to 15?

//