Побудуємо перші декілька рядків:
\begin{aligned}
S_{0}&: A,\\
S_{1}&: C,\\
S_{2}&: B,\\
S_{3}&: BCA=S_{2}S_{1}S_{0},\\
S_{4}&: BCABC=S_{3}S_{2}S_{1},\\
S_{5}&: BCABCBCAB=S_{4}S_{3}S_{2},\;\text{тощо.}
\end{aligned}
Видно, що починаючи з t=3
\boxed{\, S_{t}=S_{t-1}\,S_{t-2}\,S_{t-3}\,}.
Позначимо T_{t}=|S_{t}|. Тоді
T_{0}=T_{1}=T_{2}=1,\qquad
T_{t}=T_{t-1}+T_{t-2}+T_{t-3}\;\;(t\ge 3),
тобто послідовність трибоначчі. Для першого значення достатньо однієї лінійної динаміки з одночасним взяттям за модулем M=10^{9}+7:
T_{t}\equiv T_{t-1}+T_{t-2}+T_{t-3}\pmod{M}.
Давайте знайдемо символ на позиції k через рекурсію. Нехай функція f(t,k) повертає символ на позиції k у рядку S_{t}. Базові випадки:
f(0,1)=A,\quad f(1,1)=C,\quad f(2,1)=B.
Для t\ge 3 маємо три блоки довжин T_{t-1}, T_{t-2} та T_{t-3}. Рекурсивний перехід:
f(t,k)=
\begin{cases}
f(t-1,k), & k\le T_{t-1},\\
f(t-2,k-T_{t-1}), & T_{t-1}<k\le T_{t-1}+T_{t-2},\\
f(t-3,k-T_{t-1}-T_{t-2}), & \text{інакше.}
\end{cases}
Отже відповідь це T_n та f(n, k). Загальна часова складність O(n).