Minimal amount of points, that was possible to earn equals to 0, maximum – to 56. Consider such segments in points: [0;1], [2;3], [4;5], ..., [54;55] and 56 points. If at least 3 students are in at least one of these segments, the statement is proved. If not, then for each of these segments there are not more than two students. There are 29 segments, so not more than 58 might have taken part in the Olympiad. This contradiction ends the proof of the first part.
For the second part. If exactly 2 participants got each of points 0, 2, 4, ..., 56. Then there are no three, difference of whose results is not more than 1 point. And in total there are exactly 58 participants.