字符插入
题号:NC316682
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}给定一个仅由数字字符组成的字符串 s
\hspace{15pt}你需要恰好进行一次操作:选择一个位置,在该位置后面插入一个字符 \texttt{6}
\hspace{15pt}形式化地,你可以选择一个整数 i\left(0 \le i \le \lvert s \rvert \right),并将字符串变为 s_1 s_2 \dots s_i \texttt{6} s_{i+1} \dots s_{\lvert s \rvert},其中当 i=0 时表示在字符串最前面插入,当 i=\lvert s \rvert 时表示在字符串最后面插入。
\hspace{15pt}定义一个字符串的价值为其子序列 \texttt{2026} 出现的总数。你的任务是选择一个最优的插入位置,使得操作后字符串的价值最大。
\hspace{15pt}请你输出一个最优的插入位置。若有多个位置均最优,输出任意一个即可。

【名词解释】
子序列:从原字符串中删除任意个(可以为零、可以为全部)字符得到的新字符串。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\le T\le 10^5\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}一行包含一个字符串  s\left(1 \le \lvert s \rvert \le 10^6\right),保证 s 仅由字符 \texttt{0} 到 \texttt{9} 构成。

\hspace{15pt}除此之外,保证单个测试文件的 \left|s\right| 之和不超过 10^6

输出描述:

\hspace{15pt}对于每一组测试数据,在一行上输出一个整数,表示一个最优的插入位置 i
\hspace{15pt}这里的 i 满足 0 \le i \le \lvert s \rvert,表示将字符 \texttt{6} 插入到原字符串的前 i 个字符之后。
示例1

输入

复制
3
202
2202
666

输出

复制
3
4
0

说明

\hspace{15pt}对于第一组数据,在位置 3 插入 \texttt{6},得到字符串 \texttt{2026},其子序列 \texttt{2026} 的个数为 1,这是最优的。
\hspace{15pt}对于第二组数据,在位置 4 插入 \texttt{6},得到字符串 \texttt{22026},其子序列 \texttt{2026} 的个数为 2,这是最优的。
\hspace{15pt}对于第三组数据,无论插入到哪个位置,都无法形成子序列 \texttt{2026}。因此所有位置都最优,输出任意一个即可。

备注: