atcoder#ABC242D. [ABC242D] ABC Transform

[ABC242D] ABC Transform

题目描述

A, B, C のみからなる文字列 S S が与えられます。

S(0):=S S^{(0)}:=S とし、i=1,2,3, i=1,2,3,\ldots について S(i) S^{(i)} S(i1) S^{(i-1)} の各文字を ABC, BCA, CAB と同時に置き換えたものと定義します。

以下の Q Q 個のクエリに答えてください。i i 個目のクエリの内容は以下の通りです。

  • S(ti) S^{(t_i)} の先頭から ki k_i 文字目を出力せよ。

输入格式

入力は以下の形式で標準入力から与えられる。

S S Q Q t1 t_1 k1 k_1 t2 t_2 k2 k_2 \hspace{0.4cm}\vdots tQ t_Q kQ k_Q

输出格式

Q Q 個のクエリを添字の昇順に、すなわち与えられる順に処理し、出力ごとに改行せよ。

题目大意

给定一个长度在 [1,105][1,10^5] 范围内的,仅由ABC组成的字符串 ss。令 s0=ss_0=s。从 11 开始,sis_i 以如下规则由 si1s_{i-1} 变化而来:用BC代替A,用CA代替B,用AB代替C。现在给出 qq 次询问,第 ii 次询问会给出两个整数 tit_ikik_i,请输出 stis_{t_i} 的前数第 kik_i 个字符。

数据保证 1q1051 \le q \le 10^50ti10180 \le t_i \le 10^{18}1kimin(1018,sti)1 \le k_i \le \min (10^{18},|s_{t_i}|),且这些数都是整数。

ABC
4
0 1
1 1
1 3
1 6
A
B
C
B
CBBAACCCCC
5
57530144230160008 659279164847814847
29622990657296329 861239705300265164
509705228051901259 994708708957785197
176678501072691541 655134104344481648
827291290937314275 407121144297426665
A
A
C
A
A

提示

制約

  • S S A, B, C のみからなる長さ 1 1 以上 105 10^5 以下の文字列
  • 1  Q  105 1\ \leq\ Q\ \leq\ 10^5
  • 0  ti  1018 0\ \leq\ t_i\ \leq\ 10^{18}
  • 1  ki  min(1018, S(ti) 1\ \leq\ k_i\ \leq\ \min(10^{18},\ S^{(t_i)} の長さ) )
  • Q, ti, ki Q,\ t_i,\ k_i は整数

Sample Explanation 1

S(0)= S^{(0)}= ABC, S(1)= S^{(1)}= BCCAAB です。 よって各クエリへの答えは順に A, B, C, B となります。