Codeforces Round 607 (Div. 1) |
---|
Закончено |
Мы начинаем со строки $$$s$$$, состоящей только из цифр $$$1$$$, $$$2$$$ или $$$3$$$. Будем обозначать длину строки $$$s$$$ как $$$|s|$$$. Для всех $$$i$$$ от $$$1$$$ до $$$|s|$$$ $$$i$$$-й символ строки $$$s$$$ обозначим как $$$s_i$$$.
Где-то в строке стоит курсор. Позиция курсора $$$\ell$$$ обозначается целым числом из множества $$$\{0, \ldots, |s|\}$$$, и имеет следующее значение:
Обозначим за $$$s_\text{left}$$$ строку, находящуюся левее курсора и за $$$s_\text{right}$$$ строку находящуюся правее курсора.
Также есть строка $$$c$$$, которая называется буфером, которая изначально пуста. Всего существует три типа действий:
Изначально курсор находится в позиции $$$\ell = 0$$$. Затем, исполняется следующая процедура:
Вам дана изначальная строка $$$s$$$ и целое число $$$x$$$. Какой будет длина строки $$$s$$$ когда процедура остановится? Так как это число может быть очень большим, выведите его остаток при делении на $$$10^9 + 7$$$.
Гарантируется, что $$$\ell \le |s|$$$ в любой момент времени.
В первой строке находится единственное целое число $$$t$$$ ($$$1 \le t \le 1000$$$), количество наборов входных данных. В следующих строках находятся их описания.
В первой строке каждого набора входных данных записано единственное целое число $$$x$$$ ($$$1 \le x \le 10^6$$$). Во второй строке находится изначальная строка $$$s$$$ ($$$1 \le |s| \le 500$$$). Гарантируется, что $$$s$$$ состоит только из символов «1», «2», «3».
Гарантируется, что сумма $$$x$$$ по всем тестовым случаям не превосходит $$$10^6$$$. Гарантируется, что во всех тестовых случаях во время процедуры $$$\ell \le |s|$$$ в любой момент времени.
Для каждого тестового случая, выведите остаток при делении длины строки после процедуры на $$$10^9 + 7$$$.
4 5 231 7 2323 6 333 24 133321333
25 1438 1101 686531475
Давайте проиллюстрируем, что происходит в первом тестовом случае. Изначально у нас $$$s = $$$ 231. Изначально, $$$\ell = 0$$$ и $$$c = \varepsilon$$$ (пустая строка). Вот как изменяются эти значения в ходе процедуры:
В конце процедуры, $$$s$$$ имеет длину $$$25$$$.
Название |
---|