Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-11-17 00:28:09.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:hipersir.in, hipersir.outSursăScience On 2021, clasele 11-12
AutorTamio-Vesa NakajimaAdăugată deMihaelaCismaruMihaela Cismaru MihaelaCismaru
Timp execuţie pe test0.75 secLimită de memorie256000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Hipersir

Să considerăm un şir de cifre c, si să fie mulţimea subşirurilor nevide ale lui c (de exemplu, dacă c = 123 atunci S© = {1, 2, 3, 12, 13, 23, 123}). Fie hipervaloarea a lui c suma elementelor lui , considerate ca numere in baza 10 (de exemplu, h© = 1 + 2 + 3 + 12 + 13 + 23 + 123 = 177).

Se dă un şir de cifre c1 ... c[N], şi Q operaţii de două tipuri:

  • 1 a b x, prin care c[a], c[a+1], ..., c[b] iau valoarea x.
  • 2 a b, prin care se cere h(c[a], c[a+1], ..., c[b]) % 1.000.000.007.

Să se efectueze toate aceste operaţii.

Date de intrare

Fişierul de intrare hipersir.in conţine, pe prima linie de input, numerele N, Q.
Pe a doua linie se găseşte şirul de cifre c.
Pe următoarele Q linii se găsesc operaţiile efectuate.

Date de ieşire

În fişierul de ieşire hipersir.out se vor afişa rezultatele operaţiilor, pe linii diferite.

Restricţii

  • 1 ≤ N ≤ 300.000
  • 1 ≤ Q ≤ 300.000
  • Pentru 20 de puncte 1 ≤ N ≤ 15, 1 ≤ Q ≤ 100.
  • Pentur alte 20 de puncte 1 ≤ N ≤ 1.000, 1 ≤ Q ≤ 1.000.

Exemplu

hipersir.inhipersir.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?