Solution:
I show that the only string of ten digits starting from which it is not possible to win the solitaire is 1111100000 (five ones followed by five zeros).
Given a string I consider these two quantities:
- the number of ones,
- the total weight of the zeros, where a zero to the right of which there appear i ones weighs 2i. (For example each of the zeros of the string 001 weighs 2.)
Move (iii) leaves both quantities unaltered, because it does not change the number of ones and replaces one zero with two that weigh, each, half as much. To each string I therefore assign a type represented by a pair of numbers: the first is the remainder of the division by 2 of the number of ones, the second is the remainder of the division by 3 of the weight of the zeros. None of the moves, as we have already seen for move (iii), alters the type of the string. Move (ii), in fact, removes three zeros of the same weight, hence decreases the weight by a multiple of 3, and does not touch the ones. Move (i) removes a multiple of 2 of ones, however it alters the weight of the zeros to their left. Nevertheless, calling p the weight of these zeros after the move, the weight before was 4p, that is, it decreased by 3p, a multiple of 3.
I now show that starting from a string of type (a,b) different from (1,2) it is possible to win. I begin by playing move (iii) as long as I can. This step must terminate because with each application of move (iii) a zero is added, yet the number of zeros cannot exceed their total weight, which remains constant. When I can no longer play move (iii), the string must be made up of 2n+a ones followed by 3m+b zeros. At this point I play move (i) n times on the ones and move (ii) m times on the zeros, obtaining a string of a ones followed by b zeros. Since the type (a,b) is different from (1,2) the sum a+b must be less than three, hence I have won.
I call ugly the strings made up of 2n+1 consecutive ones followed by 3m+2 consecutive zeros: it is clear that an ugly string cannot be reduced except to an ugly string, and 100 is the shortest possible ugly string. Hence starting from an ugly string one cannot win. I will show in what follows a strategy for winning starting from strings of type (1,2) that are not ugly. It follows that the only strings starting from which it is not possible to win are the ugly ones.
First of all, if the string - which from now on we suppose to be of type (1,2), but not ugly - ends with three or more zeros, I apply to these move (ii) until they are reduced to fewer than three. The string so obtained will fall into one of these forms:
A - X1 with X of type (0,1)
B - X10 with X of type (0,2)
C - X100 with X of type (0,0).
I examine them separately.
In case A, I play the solitaire on X (where I know how to win). I thus reduce X to the string 0. In this way I have reduced my initial string to 01, and I have won.
Similarly, in case B, I reduce X to 00, so I have brought the string to 0010. Now I win by means of the moves 0010→01000→01 (for clarity, I write in bold the digits on which a move is played).
Case C is slightly more complicated. I observe that X is not made up of only ones, because otherwise the starting string would have been ugly. Hence in X I have at least one zero. Either this zero is the last digit of X, or, by dint of moves (iii), I can modify X so as to obtain a string with a zero at the bottom. At this point I have reduced X100 to the form Y0100. The type of Y must be (0,2). As before, I play the solitaire on Y reducing it to 00. I have thus reduced my initial string to 000100. Now I win by doing 000100→0010000→01000000→01000→01.
Observing, now, that 1111100000 is the only ugly string of ten digits I have the claim.