It’s a little unfair to announce winners in some kind of order as I did post the quiz at an unfriendly hour of the day for most of the planet.
With that said, Tim and William came up with a great map based solution at roughly the same time. You’ll have to split the winnings between yourselves.
Gary came an interesting solution that works for almost all the integers.
Gustavo Niemeyer takes double points for demonstrating that the first version of this problem could be defeated easily, and then proceeded to demonstrate his very mathy solution to fix Gary’s proposal. Several others also proposed some great shift tricks.
Honourable mentions go to Charlie Somerville, for playing the man and not the ball and Francesc who proved that even with two attempts I couldn’t make the problem sufficiently water tight.
Although the prohibition on adding more than one line was lost on Brendan Tracey, I think this proposal deserves to be highlighted.
So with sensible, workable, and sometimes beautiful solutions out in the open, the race was on for the bonus points for the most creative.
The first was my entry, which was the genesis for this quiz and goes to show, this why we cannot have nice things.
func f(a int, b uint) { var min = 0 min = copy(make([]struct{}, a), make([]struct{}, b)) fmt.Printf("The min of %d and %d is %d\n", a, b, min) }
Props for figuring this out goes to Arnaud Porterie and Gustavo Niemeyer who were both good sports and deleted their answer.
I was feeling rather pleased with myself until Paul Hankin emailed me this fabulously creative effort. After that others tweaked to the loop hole that I had inadvertently left open by importing the fmt
package.
Congratulations to the winners, and thank you all for contributing.