#P15036. 「chaynOI R2 T1」构造字符串

「chaynOI R2 T1」构造字符串

题目描述

本题字符集 Σ={a,b,c}\Sigma = \{\text{a},\text{b},\text{c}\},即默认所有字符为 a,b,c\text{a},\text{b},\text{c} 中的一个。

flow 有一个字符串 TT 和一个初始为空的字符串 SS,其中 T=n|T|=n,为了方便起见,保证 T1=a,T2=bT_1=\text{a},T_2=\text{b}

flow 有两种操作:

  1. SS 末尾添加一个字符 xx,需要满足 1iS,Si=x\nexists 1\le i\le |S|,S_i=x
  2. 选择一个位置 ii 满足 2iS2\le i\le |S|SiSi1S_i\ne S_{i-1},将 SiS_i 修改为 xx 满足 x∉{Si1,Si}x\not\in\{S_{i-1},S_i\}(可以注意到,xx 唯一)。

请你帮助 flow 在至多 10610^6 次操作后将 SS 修改为与 TT 相同,输出任意一个合法的解均可。

数据保证有解。

输入格式

一行一个字符串 TT

输出格式

第一行一个正整数 kk,表示你的操作次数,需要满足 1k1061\le k\le 10^6

接下来 kk 行,每行为 1 x2 i,表示操作 11 加入字符 xx 或操作 22 修改位置 ii

abca
8
1 a
1 c
1 b
2 3
1 b
2 2
2 3
2 4

提示

样例 1 解释

SS 的变换过程为 $\text{[]}\to\text{[a]}\to\text{[ac]}\to\text{[acb]}\to\text{[aca]}\to\text{[acab]}\to\text{[abab]}\to\text{[abcb]}\to\text{[abca]}$。

数据范围

本题采用捆绑测试。

对于 100%100\% 的数据,3n2222223\le n\le222222TiΣT_i\in \Sigma

  • Subtask1(10pts):n5n\le 5
  • Subtask2(10pts):n1000n\le 1000
  • Subtask3(10pts):3in\forall 3\le i\le nTi=cT_i=\text{c}
  • Subtask4(20pts):n2×105n\le 2\times10^5
  • Subtask5(50pts):无特殊限制。