Mysterix
"They'll stop going to the company picnic if it becomes an occasion for everyone to list all the computer problems they never bothered to mention before."
=> I think I can confirm there is no bug in the demo.
Each player has 10 minutes for the whole game, like in a classic blitz game, but the clock is 10 meters away.
Next one is on May the 19th.
http://www.echiquierdulac.fr/?p=2744 (in french)
My (little) problem is the sentence "Replacing your router (or firmware) almost always fixes your problem.", because if the first router is broken, replacing it will only fix your problem in 10% of the cases, which is not "almost always".
>
> Vendor A: 10% broken
> Vendor B: 10% broken
> P(both A and B broken):
> 10% x 10% = 1%
>
>Replacing your router (or firmware) almost always fixes your problem.
The conclusion is false :
if router A is broken, router B still have 10% chance to be broken, the two events being independant.
P(A broken | B broken) = 10%
To get the 1% effect, advice could be :
Always buy 2 routers instead of 1
Even for a front-end developer, I think that algorithms matter, because developers have to understand what they do.
And the OP's solution in O(N2), as well as the other one with hash maps, seem quite bad (it can be done trivially in O(Nlog(N), and optimized to reach O(N))