(By Anton Mellit, observer from the Ukraine delegation, and Ilya Bogdanov, observer from the Russia delegation).
We will represent a route of the grasshopper by a (ordered) sequence of indices (i1,i2,…,in) if it makes consecutive jumps (ai1,ai2,…,ain).
To simplify our argument a bit, we prove the following statement:
Let a1,a2,…,an be distinct positive integers and let M be a set of no more than n−1 integers not containing s=a1+a2+⋯+an. A grasshopper is to jump along the real axis, starting at the point 0 and making n jumps to the right with lengths a1,a2,…,an in some order. Prove that the order can be chosen in such a way that the grasshopper never lands on any point in M.
We induct on n. The base case n=1 is rather trivial. For the inductive step, we assume that the claim is true for all values n smaller than some integer k>1. We now consider n=k. Without loss of generality, we may assume that a1<a2<⋯<ak. Let M={r1,r2,…,rk−1}, with r1<r2<⋯<rk−1. We divide into several cases.
(a1) In this case, we assume that r1<an and an∈/M. Then we apply the induction hypothesis to M1=M∖{r1}−an={r2−an,r3−an,…,rn−1−an} using jumps a1,a2,…,an−1. Putting an at the beginning of this sequence of jumps provides the desired route.
(a2) In this case, we assume that r1<an and an∈M. Consider the n pairwise disjoint sets
{an},{a1,a1+an},{a2,a2+an},…,{an−1,an−1+an}.
Because M only has n−1 elements, there is an index i such that {ai,ai+an} is disjoint from M. It follows that there are at most n−3 elements in the intersection of M and the interval [ai+an,s], because r1 and an are not in the interval. We apply the induction hypothesis to M2=M∩[ai+an,s]−(ai+an) using jumps a1,a2,…,ai−1,ai+1,…,an−1. Putting ai and an at the beginning (in that order) provides the desired route.
(b) In this case, we assume that r1≥an. We consider M3=M∖{r1}−an={r2−an,r3−an,…,rn−1−an}. We apply the induction hypothesis to M3 using jumps a1,a2,…,an−1; and let the resulting route be Rn−1=(i1,i2,…,in−1).
If this route Rn−1 does not step on r1−an (in particular, it follows that r1>an), then the route Rn=(an,i1,i2,…,in−1) will do the job.
Otherwise, the route Rn contains exactly one point of M, namely, r1. Hence, there exists an index k with 1≤k≤n−1 such that
an+ai1+⋯+aik=r1.
We then consider the route
Rn′=(i1,i2,…,ik+1,an,ik+2,…,in−1).
We claim that this route Rn′ will do the job, which completes our proof. Indeed, because
ai1+⋯+aik+1<ai1+⋯+aik+an=r1,
the grasshopper will not land on the points of M during the first k+1 jumps. On the other hand, during the remaining part of the route, it lands on the same points as in the route Rn (and these points are not less than ai1+ai2+⋯+aik+1+an>r1), so it will not land on points of M as well. Therefore, this route Rn′ allows the grasshopper to completely avoid landing on points in M.