CF1598G The Sum of Good Numbers
题目描述
我们称一个正整数为“好数”,如果它的十进制表示中不包含数字 $0$。
对于一个由好数组成的数组 $a$,已知存在某两个相邻元素之和等于 $x$(即 $x = a_i + a_{i+1}$,对于某个 $i$)。$x$ 也是一个好数。
然后,将数组 $a$ 的所有元素依次写成一个没有分隔符的字符串 $s$。例如,如果 $a = [12, 5, 6, 133]$,那么 $s = 1256133$。
现在给定字符串 $s$ 和数字 $x$,你的任务是确定字符串中对应于这两个相邻元素的位置。如果有多组答案,可以输出任意一组。
输入格式
第一行包含字符串 $s$($2 \le |s| \le 5 \cdot 10^5$)。
第二行包含整数 $x$($2 \le x < 10^{200000}$)。
输入保证一定存在解,即总能从字符串 $s$ 中选出两个相邻的子串,将它们转化为整数后,其和等于 $x$。
输出格式
第一行输出两个整数 $l_1$ 和 $r_1$,表示第一个加数($a_i$)在字符串 $s$ 中的起止位置。
第二行输出两个整数 $l_2$ 和 $r_2$,表示第二个加数($a_{i+1}$)在字符串 $s$ 中的起止位置。
说明/提示
在第一个样例中,$s[1;2] = 12$,$s[3;3] = 5$,$12+5=17$。
在第二个样例中,$s[2;3] = 54$,$s[4;6] = 471$,$54+471=525$。
在第三个样例中,$s[1;1] = 2$,$s[2;2] = 3$,$2+3=5$。
在第四个样例中,$s[2;7] = 218633$,$s[8;13] = 757639$,$218633+757639=976272$。
由 ChatGPT 4.1 翻译