Gimi a devenit noul coordonator de divertisment al platformei GuguștiucShorts! El știe că pe platforma lui sunt înscriși utilizatori, iar pentru fiecare user știe ce memă (eng. meme --- o idee, de obicei hazlie, materializată într-o imagine, un clip sau un text, care se răspândește prin intermediul internetului) i-ar apărea dacă ar intra pe rețea. Fiecare memă este codificată printr-un număr natural.
Cum Gimi este un coordonator responsabil, el poate să modifice conținutul utilizatorului preluând conținut:
- din dreapta: dacă , mema utilizatorului devine aceeași cu mema utilizatorului ;
- din stânga: dacă , mema utilizatorului devine aceeași cu mema utilizatorului .
De exemplu, dacă șirul de meme-uri era și aplicăm o operație asupra utilizatorului , din dreapta, șirul devine , iar dacă mai aplicăm încă o operație asupra șirului rezultat pe poziția , din dreapta, șirul devine . De asemenea, dacă facem o operație asupra utilizatorului , din stânga, pe șirul , obținem șirul .
Cerință
Gimi, curios de fel, vrea să afle, plecând de la un șir inițial , în câte șiruri distincte îl poate transforma aplicând operația descrisă mai sus de oricâte (eventual ) de ori. Răspunsul va fi afișat modulo .
Date de intrare
Pe prima linie a fișierului de intrare memes.in
se găsește un număr natural , care reprezintă numărul de utilizatori ai platformei. Pe următoarea linie din fișierul de intrare se va găsi un șir de numere naturale, unde reprezintă mema asignată utilizatorului .
Date de ieșire
În fișierul de ieșire memes.out
se va afișa un singur număr, care reprezintă numărul de șiruri distincte la care poate ajunge Gimi aplicând operația descrisă mai sus, modulo .
Restricții și precizări
- pentru orice .
- Doua șiruri se consideră distincte dacă diferă în cel puțin o poziție.
# | Scor | Restricții |
---|---|---|
1 | 6 | |
2 | 10 | |
3 | 7 | Numerele din șir sunt distincte două câte două. |
4 | 9 | , pentru orice |
5 | 22 | |
6 | 19 | și , pentru orice |
7 | 27 | Fără restricții suplimentare. |
Exemplul 1
memes.in
3
1 2 1
memes.out
7
Explicație
Șirurile posibile la care putem ajunge sunt: , , , , , , , deci șiruri distincte.
Exemplul 2
memes.in
3
1 1 1
memes.out
1
Explicație
Indiferent de câte ori aplicăm operația, ajungem la șirul inițial . Deci avem un singur șir distinct.