Anagramma

3
Latvijas Informātikas olimpiādes logo

Uzdevums no 2026. g. LIO skolas kārtas; abām grupām.

Stāsts

Dotam vārdam VV par tā anagrammām sauc visus vārdus, kas iegūti no VV burtiem, visus tos saliekot kaut kādā secībā. Atšķirībā no reālās dzīves, arī bezjēdzīgus burtu virknējumus uzskatīsim par derīgām anagrammām. Ievērsiet, ka pats vārds VV arī ir viena no VV anagrammām. Uzrakstīsim visas VV anagrammas pēc kārtas leksikogrāfiskā secībā (vārds XX leksikogrāfiskā secībā atrodas pirms vārda YY, ja pirmais atšķirīgais burts pēc kārtas vārdā XX alfabētā atrodas pirms atbilstošā vietā esošā burta vārdā YY) un meklēsim šajā sarakstā doto vārdu VV.

Piemēram, ja VV ir "suns", tad visas tā anagrammas leksikogrāfiskā secībā ir:

nssu, nsus, nuss, snsu, snus, ssnu, ssun, suns, susn, unss, usns, ussn

un vārds “suns” šajā virknē ir astotais pēc kārtas.

Uzrakstiet datorprogrammu, kas dotam vārdam nosaka, kurš pēc kārtas tas ir savu leksikogrāfiski sakārtoto anagrammu sarakstā!

Ievaddati

Pirmajā rindā dota naturāla skaitļa NN (vārda garums, N≤105N \leq 10^5) vērtība.

Otrajā rindā dots vārds – NN latviešu alfabēta mazo burtu bez diakritiskajām zīmēm virkne.

Izvaddati

Izvaddatu vienīgajā rindā jābūt naturālam skaitlim – dotā vārda kārtas numuram leksikogrāfiski sakārtotā tā anagrammu sarakstā. Kārtas numurs jāizvada pēc moduļa 109+710^9+7. Izvadīšanai pēc moduļa nav nekāda cita nozīme, kā vien samazināt izvadāmā skaitļa lielumu.

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

N≤6N \leq 6

10
3.

6<N≤206 < N \leq 20, vārdā izmantoti tikai divi dažādi burti

10
4.

6<N≤206 < N \leq 20, vārdā neviens burts neatkārtojas

10
5.

6<N≤206 < N \leq 20

20
6.

Bez papildu ierobežojumiem

48
Apakšuzdevumu punktu summa = 100.

Piemēri

Ievaddati

4 suns Kopēt kodu

Izvaddati

8 Kopēt kodu

Ievaddati

4 aita Kopēt kodu

Izvaddati

4 Kopēt kodu

Ievaddati

4 zivs Kopēt kodu

Izvaddati

20 Kopēt kodu

1. apakšuzdevuma ievaddati

5 cauna Kopēt kodu
6 dzenis Kopēt kodu
10 salamandra Kopēt kodu