Feedback Of February Challenge 2018

Hi Fellow Programmers,

The Feb long challenge has just concluded. We hope that you enjoyed participating in the contest. Please feel free to pitch in your views about anything that you would like to mention about the contest.

CodeChef Admin


Thanks for posting quick editorial :slight_smile:

How come this solution to the question Chef and odd queries: that uses a bitset of total size 10^10 bits (i.e. 1250 MBs) passed, where normally memory limit is 256 MB or 512 MB in long challenge questions. Also, the memory limit is not mentioned at all in the problem! This solution solves the problem without any segment tree or sqrt decomposition but just using bitsets. I think this kind of solutions having O(N^2) memory are not supposed to pass for chef and odd queries. @admin @markysha

1 Like

Very nice.Enjoyed it a lot!

One of the best long challenges I’ve ever taken. Well balanced and nice problems.

1 Like

I think codechef should start providing the test cases once the contest is finished. It will help us more in finding our mistakes.


plz provide official editorial … quite good contest!!

@admin @vijju123

Check my soln for (Challenge) Biased Committee

I have been awarded ~20 pts for sinply printing what is given as input.
Indeed weak test cases.
Such an unoptimized soln got 20 pts and pass subtask 1 of Chef and odd queries awarded 10 pts.
Plz don.t allow this type of soln to take away 20 pts on challenge question. As it reduces the moral of other participants when they get to know this.

And they are trying hard to get 100 pts. Or not attempting just because they cannot think of procedure to solve Q.

On the other hand people are getting pts for simply printing input. And that too 20 pts.

This type of soln deserves less than 5 pts. So plz make sure from next time that score should be such that this does not happen again. Because this affects rating and ranking of many deserved ones.

There are many this type of soln.

P.S. Most soln with time ~.012 sec on c/c++. Have either done this or took average.

1 Like

can anyone tell how the bitset soln passd. Not only it has memory complexity N^2 but also time complexity of N^2. On the other hand i dont think testcases were very weak as my O(Nsqrt(N)log(sqrt(N))) algo failed. Or did i miss something?


Regarding the gradient of the contest , I feel the first 5 problems were good as per their difficulty level but 6th,8th,9th and 10th problems should have been a little harder than they were, especially the 9th problem which require only a greedy approach.


Hello Community!
I wanted to contribute to the community but since I don’t have enough karma points, I want you to upvote only if you like my unofficial editorial on PERMPAL :
Contest link:

My approach:
1.The answer will be -1 only when the count of any of 26 characters is odd and there exists more than one such character’s example : abbc, here we can see both ‘a’ and ‘c’ have odd count in the given string.
2.In any other case, we will always find a answer, that is pallindrome.
3.Based on above point, we will deal with two cases :
—(A)When only one character comes with odd count and rest other characters with even count.
—(B)When all the character in the given string are of even count.

Now the question comes How to solve this?

So it is much clear for case 3(A) that the odd count characters should be in the middle of string in order to make it pallindrome, eg abbba n(b)=3 i.e odd

Since the ordering of characters won’t matter in case of even count, we will print index one by one from vector<vector> v(26), I have used this for storing the index of each character(a-z) in the string.In the output I need to just print the even count characters index ,simultaneously from beginning and end.
Keep in mind that the odd count character should be in the middle.

If you give up, you can see my solution here:

All suggestions are welcome!

Thanks Community,
Happy Coding!

1 Like

while other thinks the contest was well balanced. i think the opposite. see the accuracy fell frm 20% to 5% between 4th and 5th ques. difficulty of prob shld increase gradually (as discussed in @triveni’s post). ,

I too agree with @abx_2109,probably that was because the alternative solution was much simpler than the desired solution(like bitmask for CHANOQ,greedy for 9th sum),if the memory limit were strict,then it could have been a more balanced contest.

But overall,liked it.


@admin This is another "Weak testcases in … " kind of post :p. The testcases of the problem POINPOLY were weak this time. What I did is first, I found the minimum and the maximum y co-ordinate of the vertices of the polygon.Lets say they are miny and maxy. Now, I found all points inside the polygon having a particular y co-ordinate, say d. So I iterated for d from (miny+1) to (maxy-1), and found two intersection points of the line y=d with the polygon.(This is guaranteed that there will be two intersection points, since the polygon is convex and miny < d < maxy.) This I did in O(n) for each d. Once I get the two intersection points at y=d, say (l,d) and (r,d) (l and r will not always be integers, but I manipulated accordingly so that they are inside the polygon, by either taking ceil for left and floor for right.). Now I output all points (x,d) such that l<=x<=r. When I get (N/10) points, I break the loop. This solution has a complexity of O((maxy-miny)*n), but still it passed the 30 pts subtask and got TLE in just one file of the large task. Then I reversed the loop and iterated d from (maxy-1) to (miny+1). This solution got 100 pts. :stuck_out_tongue: . This is slow enough even for the small subtask, only when there are counter-cases for such a solution, which wasn’t. I can make it work even faster by choosing random d in [miny+1,maxy-1]. I think making counter-cases for this solution is hard too. But I will be happier to see a TLE verdict for such solution, so that I come up with a better solution.
Here are the two solutions :- // 30 points, TLE in just one file of large input. //100 points

Nice contest!

It would be really great if the search for Submissions for a particular problem allowed you to filter by “pts” as well as Language and Result (All/AC/WA/…). If you want to find the fastest 100pts solution, you may have to check through 100 pages of 10pts solutions first.

Also, it would be nice if the Submissions search showed you the size of the program. So you could look for short programs, which could be helpful if you wanted to find the cleanest / most instructive answer. (I suppose this would be controversial, since it would give a little extra information during a contest, but it could be interesting/encouraging to know if there is a short solution.)

If the Submissions search allowed you to download the results as a csv file or something, then people could make their own views of the solutions, e.g., a scattergram of (speed,size).

1 Like

@alexthelemon can u explain ur method how u solve poinpoly

The ranklist has totally changed ,and that too after updation of ratings.

Here is the ranklist:

Is this a bug or rating would be updated as per the new ranklist?

The Competition was very well balanced!! One of the best long challenges till date!!

1 Like

It was an amazing contest. Well balanced and each question was interesting. 4th question was tricky and based on observations . I love this type of questions. Enjoyed a lot:)

Hi, I am new to CodeChef so I don’t know where to find the editorials. Has the editorial been released? If so can someone tell me where to find it?