Don't Panic was our last WorldCup of the year. The aim of the game was to rescue Marvin and his clones from the malfunctioning Infinite Improbability Drive, and save him from a tragic - if improbable - fate.
PODIUM & RANKINGS
Don't Panic brought together 1,880 participants, and 1,023 managed to get to the end.
The average score for this challenge was 52%. The average time to solve the problem was: 2:57:24.
The ranking et le leaderboard are here.
Akulen (C++, France,), wrapped it all first in 01:39:43. Shef (C++, Ukraine) finished in 01:40:07) and shilov (Java, Russia) arrived at 3rd place in 01:47:08. GG to you guys!
In the Top 10 : France (4 CodinGamers : Akulen, MockingHawk, Cygin, NewboO), Russia (2 CG : shilov and enot), Ukraine (1 CG : Shef), Japan (1 CG : nodchip), Norway (1 CG : Yngvi), Brazil (1 CG : Mars).
For the first five tests all you needed to do was block a clone whenever it came close to an edge. For the last 2 test cases, you needed to detect that the clones were headed towards an edge and block them immediately after they exit an elevator. Greedy algorithms were the key.
Stats : 64% of finishers completed 100% of this exercise (average score for this exercise : 70%)
This time round, a new complication was introduced: choosing were to place elevators. On the first 5 (out of 10) test cases, you could implement a greedy algorithm similar to those for the 1st exercise where you build an elevator as soon as you find yourself on a floor without any.
The next 2 test cases were much more complicated with a limited amount of turns and a real importance on where to place which elevator. From the 6th test case upward, It was pivotal to take in to account the "loss" of 3 turns for each clone you blocked.
For the final 4 test cases, several algorithms were usable: path finding, backtracking, with or without a graph... To pass all the test cases in the allotted time, it was necessary to limit exploration to a minimum by carefully selecting the most pertinent possibilities.
Example 1: You must place 1 elevator per floor. The list of positions in which it is interesting to place an elevator is limited.
Example 2: You only need to save a single position per floor since the transitions between floors is not something you can go back on during the game.
There are plenty more ideas you can come up with, but always try to stay within the time limit...
Stats : 2% of finishers completed 100% of exercise 2 (average score for this exercise : 34%)
AVERAGE SCORE BY LANGUAGE
Go comes in on top in the ranking by score, Scala gains 3 places, and - surprise! - Pascal & Objective-C clamber up the podium to the top 5!