Since $[a_n,b_n] \subset [x,y] \forall n$, we know that $Q = \{a_n\}^\infty_{n=1}$is bounded
Let $t= \sup Q$ (which will be the accumulation point)
Let $P$ be any neighborhood of $t$, so that there is some $\epsilon>0$ where $(t- \epsilon, t+ \epsilon) \subset P$
$t-\epsilon $ is not an upper bound for $Q$ since $t=\sup Q$
Therefore there is a positive integer n where $t- \epsilon < a_n \le a_m \le t$
If $m>n$, then $t- \epsilon <a_n \le a_m \le t$
Each $[a_m,b_m]$ contains infinitely many points of $S$ so the proof would be done if we found m such that $t - \epsilon < a_m < b_m < t+ \epsilon$
We know that $t- \epsilon <a_m \le t$ for $m \ge n$, so we must choose m large enough so that $m \ge n$ and $2^{-m}(y-x) < \epsilon$ which is the length of $[a_m, b_m]$
So choose $m \ge n$ such that $t- \epsilon < a_m \le t \le b_m = a_m -(a_m - b_m) = a_m - 2^{-m}(y-x)$
Therefore $P$ contains $[a_m,b_m]$ or an infinite amount of members of $S$ and $t$ is an accumulation point of $S$.
The only part that I don't understand is how exactly we picked $Q$ to be $a_n$ and not $b_n$.