I'd be interested in the writeup on the train problem if it's not too much trouble.
Dammit. I was hoping to get away without having to do this.
So first, some definitions:
Train speed = A
First person speed = x
Second person speed = y
The speed of the train relative to the first person is (A-x). This speed takes 20s to travel the length of the train. The speed of the train relative to the second person is (A+y). This speed takes 18s to travel the length of the train. So we have:
20(A-x) = 18(A+y)
20A - 20x = 18A + 18y
2A = 20x + 18y
A = 10x + 9y
Next. The distance between the two people, when the train has just finished passing person 1, is the length of the train, plus 10 minutes of travel.
Length of the train = 18(A+y)
Length of the distance between the train and person 2 = 600(A+y)
So at this point the distance between the two people = (600+18)(A+y)
Since A = 10x + 9y
The distance = 618(10x + 9y + y) = 618(10x+10y) = 6180(x+y)
Since (x+y) is the speed that the two people are walking towards each other, we're almost there. 6180 seconds, and this includes the 10 minutes (600 seconds) the train spent traveling between them, as well as the 18 seconds it took for the train to pass person 2.
6180 - 600 - 18 = 5562 seconds. Or 1 hour, 32 minutes, and 42 seconds.
There are lots of ways of doing this. For using the length of the train, 20(A-x) works out as well as 18(A+y), it's just that using y is a bit easier. You can also use the distance by each of the objects in various time periods instead of just using speeds, though I find speeds more intuitive.