Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2019-09-27 07:41:04.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:sirinf.in, sirinf.outSursăRomanian Collegiate Programming Contest 2019
AutorValeriu MotroiAdăugată deRCPC2019RCPC2019 RCPC2019
Timp execuţie pe test0.25 secLimită de memorie32000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Sirul infinit

Cristinel a gasit un sir de caractere S de lungime N. Alexei este invidios pentru ca vrea si el un sir de caractere. Din aceasta cauza ei au hotarat ca cine rezolva aceasta problema acela primeste sirul de caractere.

Definim stringul infinit T ca fiind o concatenare infinita a lui S. Cu alte cuvinte, T = S + S + ... + S de un numar infinit de ori. Si Alexei si Cristinel au observat ca stringul T are cel mult N suffixe distincte. Al N+1-lea suffix o sa fie egal cu primul suffix. Al N+2-lea suffix o sa fie egal cu al doilea suffix. Si tot asa mai departe. Luam cele N suffixe, le sortam lexicografic (in caz de egalitate, dupa indexul suffixului. Pentru a primi sirul de caractere, Alexei si Cristinel trebuie sa raspunda la intrebarea: Pe ce pozitie se afla stringul S in lista sortata a celor N suffixe?
Mai multe detalii in explicatia exemplului.

Date de intrare

Fişierul de intrare sirinf.in pe prima linie se aflat T, numarul de teste intr-un fisier. Apoi, pe urmatoarele linii apare cate un string format din alfabetul limbei engleze.

Date de ieşire

În fişierul de ieşire sirinf.out se afiseaza T linii, pe linia i se afla pozitia stringului S in lista sortata a celor N suffixe a stringului T.

Restricţii

  • 1 ≤ N ≤ 106

Exemplu

sirinf.insirinf.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?