- Time limit: 1.00 s
- Memory limit: 512 MB
Annettuna on merkkijono, jonka jokainen merkki on numero väliltä 1–9 tai operaattori + (yhteenlasku) tai * (kertolasku). Merkkijonossa ei ole peräkkäin kahta operaattoria.
Merkkijonon osajonon arvo lasketaan tavallisten laskusääntöjen mukaisesti. Esimerkiksi merkkijonon 1337+42*666 osana on osajono 7+42*66, jonka arvo on 2779. Jos osajonon ensimmäinen tai viimeinen merkki on operaattori, osajonon arvo on 0.
Tehtäväsi on laskea summa merkkijonon kaikkien osajonojen arvoista.
Syöte
Syötteen ainoalla rivillä on merkkijono, jonka pituus on n.
Tuloste
Tulosta yksi kokonaisluku: vastaus modulo 10^9+7.
Esimerkki 1
Syöte:
1+23
Tuloste:
56
Selitys: Vastaus saadaan laskemalla yhteen osajonojen 1, 2, 3, 23, 1+2 ja 1+23 arvot.
Esimerkki 2
Syöte:
1337+42*666
Tuloste:
167998
Osatehtävä 1 (5 pistettä)
- 1 \le n \le 100
Osatehtävä 2 (25 pistettä)
- 1 \le n \le 5000
Osatehtävä 3 (10 pistettä)
- 1 \le n \le 10^6
- Jokainen merkki on numeromerkki
Osatehtävä 4 (10 pistettä)
- 1 \le n \le 10^6
- Jokainen merkki on numeromerkki tai
+-merkki
Osatehtävä 5 (10 pistettä)
- 1 \le n \le 10^6
- Jokainen merkki on numeromerkki tai
*-merkki
Osatehtävä 6 (40 pistettä)
- 1 \le n \le 10^6
