Докажем, что для 0<t<=min{r(x)/2,r(y)/2} множества (x-t,x+t) и (y-t,y+t) имеют пустое пересечение. Действительно, для их общей точки z было бы |x-y|<=|x-z|+|z-y|<=2t<=min{r(x),r(y)}, т.е.x in (y-r(y),y+r(y)) и y in (x-r(x),x+r(x)), поэтому f(x)<=f(y) и f(y)<=f(x),
сл., f(x)=f(y), но это противоречит строению множества X.
Полагаем, Z_n={x in X: r(x)>=1/n}. Для каждого x in Z_n из интервала (x-1/(2*n), x+1/(2*n)) (интервал на отрезке [0,1]) возьмём какую-нибудь рациональную точку.
(Здесь интервал на [0,1]). Как показано выше, что это отбражение Z_n в Q взаимнооднозначно, т.е. Z_n счётно.
Очевидно, что X есть объединение Z_n по всем натуральным n, т.е. X счётно, но |X|=|f[0,1]|.
Зачем про пустое пересечение и про сопоставление с рациональной точкой.
В Z_n={x in X: 1/(n+1) < r(x)<=1/n} не более (n+1) элементов. Больше ничего и не надо.