Mark Whitney's unofficial Google code jam answers for the 2012 competition. I will add my answers for each round I advance to once the round is over and it is permissible to publish answers.
There is a bug somewhere in my solution to problem C, it did not pass the large problem set.
I read problem D and decided I didn't want to implement a raytracer so I did not attempt it. I also did not even understand how to derive the solution to the 3rd example case by hand, so I figure I was pretty much doomed at that point.
I specifically switched to using python3 for this challenge to use the *-format tuple unpacking in the problem B solution. I figure it is good for me anyway.