Ответ:

Витя финишировал непосредственно перед Андреем, а Боря — на две позиции ниже Вити. Значит, порядок этих троих: Витя, Андрей, Боря.

Если бы Витя был первым, Дима и Глеб заняли бы оставшиеся два места, причём Глеб оказался бы последним — это запрещено. Если бы Витя был вторым, Дима и Глеб также заняли бы первое и последнее места, и Глеб снова был бы последним. Поэтому Витя — третий, Андрей — четвёртый, Боря — пятый.

Оставшиеся первое и второе места занимают Дима и Глеб. Поскольку Дима финишировал раньше Глеба, первым был Дима, вторым — Глеб.

Ответ: 1) Дима; 2) Глеб; 3) Витя; 4) Андрей; 5) Боря.