uoj#P529. 【美团杯2020】114514
【美团杯2020】114514
众所周知,114514
是一个带有味道的数字。
蒜斜不太喜欢 114514
,就像米斯达不喜欢 4
一样。但是总有一些讨厌的群友给蒜斜发这个数字,最开始,在蒜斜的禁言+拉黑手段下,这样的风气稍微缓解了一点。但是好景不长,群友们渐渐发明出了新的手段:有一些群友会把若干个 114514
穿插在一起,从而变成一个新的字符串。例如两个 114514
就能够穿插形成 111145144514
, 114151145144
等字符串。
对于一些短的字符串,蒜斜还能勉强分辨出这些字符串是怎么由 114514
得到的。但是有些时候群友会发一些特别复杂的字符串,这就让蒜斜犯了难。于是他找到了你,希望你能帮助他把一些字符串拆分成 114514
,这样他就有证据可以去禁言那些讨厌的群友了。
具体来说,蒜斜会给你一些长度为 $6$ 的倍数的只包含字符 1
,4
,5
的字符串 $S$。而你要找到$n=|S|/6$个序列,$x_{1,1},x_{1,2}, \dots, x_{1,6}, \dots, x_{n,1}, \dots, x_{n,6}$。要求:
- 对于每个$i (1\leq i\leq n)$,有$1\leq x_{i,1} < x_{i,2} < \dots < x_{i,6}\leq |S|$。
- 所有的$x_{i,j} (1\leq i \leq n, 1 \leq j\leq 6)$两两不同。
- 对于每个$i (1\leq i \leq n)$,有$S_{x_{i,1}}=S_{x_{i,2}}=S_{x_{i,5}}=$
1
, $S_{x_{i,3}}=S_{x_{i,6}}=$4
, $S_{x_{i,4}}=$5
。这里对于$S$中的字符,下标从$1$开始。
输入格式
第一行一个整数$T (1\leq T\leq 10^5)$表示数据组数。
接下来$T$行,每行一个字符串$S (1\leq |S|\leq 6\times 10^5)$。保证所有的字符串长度总和不超过$6\times 10^5$,且保证存在一种拆分方案。
输出格式
对于每组数据,输出$|S|/6$行,每行$6$个整数,表示一种拆分方案。如果存在多种合法的拆分方案,你只需要输出任意一种即可。
样例输入
3 114514 111144551144 111141154115114454514414
样例输出
1 2 3 4 5 6 1 2 5 7 9 11 3 4 6 8 10 12 1 2 5 8 13 18 3 4 9 12 14 21 6 7 15 17 20 22 10 11 16 19 23 24
限制与约定
Small Task: 保证 $S$ 的最后 $|S|/6$ 个字符都为4
。
Large Task: 无特殊限制。
时间限制:$1\texttt{s}$
空间限制:$1024\texttt{MB}$