This is my solution to the second round of the 42nd Bundeswettbewerb Informatik.
The details of my solution for part 1 are found here and for part 3 are found here.
As this competition is held in German, the program and its documentation are also written in German. Perhaps google translate might help you out here...