Logo
(追記) (追記ここまで)

30783번 - Домашнее задание 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
4 초 1024 MB111100.000%

문제

Спустя тридцать сезонов Мэгги Симпсон наконец поступила в первый класс. В целях тренировки чистописания учительница задала детям выписать в строку N цифр от ‘0’ до ‘9’ в некотором порядке.

После нескольких часов страданий Мэгги всё-таки справилась с домашним заданием и убежала играть с друзьями, оставив свою работу лежащей на письменном столе. В это время в комнату зашла Лиза Симпсон. Игра на саксофоне уже успела её порядком утомить, и она находилась в поисках какого-нибудь нового увлекательного занятия, когда её взгляд остановился на исписанной тетрадке Мэгги.

Лиза быстро справилась с тем, чтобы посчитать сумму всех написанных Мэгги цифр, но тут в комнату ворвался Барт и предложил ей задачу поинтереснее — произвести M операций с данной строкой цифр. Фантазия Барта довольно скудна, поэтому операции бывают только двух типов. Пусть позиции в строке занумерованы числами от 1 до N слева направо. Тогда операции имеют следующий вид:

  1. Барт называет два числа li и ri, а также цифру ci, после чего Лиза должна заменить все цифры на позициях с li-й по ri-ю включительно на цифру ci.
  2. Барт называет два числа li и ri, после чего Лиза должна посчитать сумму всех чисел, десятичные записи которых встречаются как подстроки отрезка исходной строки с li-й по ri-ю позицию включительно. При этом каждое число должно быть просуммировано с учётом кратности, то есть столько раз, сколько его запись встречается на отрезке с li-й по ri-ю. Также требуется учитывать только корректные десятичные записи чисел, то есть подстроки, начинающиеся на ‘0’, не должны входить в сумму.

Барт сегодня добрый, поэтому на операцию второго типа он просит от Лизы только остаток от деления ответа на 109 + 7.

Желая доказать своё превосходство над братом, Лиза немедленно согласилась. Поскольку Барт сам не знает правильных ответов, он никак не может проверить вычисления Лизы, поэтому ему крайне необходима ваша помощь.

입력

В первой строке ввода записаны через пробел два целых числа N и M — количество цифр, выписанных Мэгги, и количество операций Барта (1 ⩽ N, M ⩽ 100 000).

Вторая строка ввода содержит N цифр от 0 до 9, разделённых пробелами.

Следующие M строк описывают операции.

Запись вида 1 li ri ci обозначает операцию первого типа (1 ⩽ li ⩽ ri ⩽ N, 0 ⩽ ci ⩽ 9).

Запись вида 2 li ri обозначает операцию второго типа (1 ⩽ li ⩽ ri ⩽ N).

출력

На каждую операцию второго типа выведите остаток от деления ответа на 109 + 7.

Если среди операций Барта не присутствует ни одной операции второго типа, ничего выводить не требуется.

제한

예제 입력 1

4 3
1 2 1 3
2 1 3
1 3 3 0
2 2 4

예제 출력 1

158
228

예제 입력 2

9 3
1 1 1 1 1 1 1 1 1
2 1 9
1 1 9 9
2 1 9

예제 출력 2

137174205
234567838

노트

На первую операцию второго типа ответ представляет собой следующую сумму: 1 +たす 12 +たす 121 +たす 2 +たす 21 +たす 1 = 158.

На вторую операцию второго типа ответ представляет собой следующую сумму: 2 +たす 20 +たす 203 +たす 0 +たす 3 = 228. Обратите внимание: в ней присутствует меньше слагаемых, так как строка 03 не представляет собой корректную десятичную запись целого числа.

출처

Olympiad > Moscow Open Olympiad in Informatics > Moscow Open Olympiad in Informatics Qualification 2014-15 I번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /