長い長い文字列
「i 番目までの命令列を実行して得られる文字数」≧ X になる最初の i を考える
S[i] が英小文字ならそれが答え (文字数が +1 されてちょうど X になったということなので)
S[i] が数字とする
T := i-1 番目までの命令から得られる文字列 としよう (|T| < X)
T を十分な回数繰り返した文字列: T+T+T+... の X 文字目が答え
たとえば T="abc", X=8 のときは、a からスタートして 7 回進んだ位置を知りたいから
abc のサイクルを 7//3=2 周
「余り」7%3=1 進む
と考えて b と分かる
https://gyazo.com/4a7e6d8cd8741c1351bab56ac9b71466
結局
X ← (X-1)%len(T)+1
S ← S の先頭 i-1 文字
とサイズが小さい問題に落ちる
この繰り返しは最大 N 回しか起きないので元の問題は O(N) で解ける