Solution:
We indicate all lengths in meters and all times in seconds, omitting the units of measure.
The possible triples of speeds are (vs,vp,vd)=(10,12,15),(9,12,18),(8,12,24) and (7,12,42).
Let us first consider a completely flat circuit of length 600. Hypothesis (c) then gives 50=vp600, from which vp=50600=12.
Let us then consider a generic circuit of length 600, in which the uphill section has length s, the flat section p and the downhill section d.
By construction s+p+d=600; moreover, in order for the circuit to close, the elevation gain given by the uphill sections must be the same as that given by the downhill sections: since the slopes are the same for all the non-flat sections, there must be as much uphill as downhill, that is s=d.
The flat section then has length p=600−s−d=600−2s, and the time taken by the car to travel the circuit is vss+vpp+vdd=vss+12600−2s+vds=s(vs1+vd1−61)+12600, which is equal to 50=12600 if and only if s(vs1+vd1−61)=0.
The speeds then satisfy condition (c) of the statement if and only if the previous relation holds for any closed circuit whatsoever, that is, for any choice of s (between 0 and 300).
A necessary and sufficient condition on the speeds is therefore vs1+vd1=61; vs and vd are both different from zero, so we can rewrite this equation as vsvd=6(vs+vd), that is (vs−6)(vd−6)=36.
vd is an integer greater than vp=12, so vd−6 is a divisor of 36 strictly greater than 6, that is it is one of 9, 12, 18 or 36 (which correspond respectively to the values 15,18,24,42 for vd).
Solving the equation for vs we finally obtain vs=6+vd−636, that is vs=10,9,8,7.