Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Istoria paginii problema/hack | Istoria paginii utilizator/cesc | Diferente pentru problema/codificare intre reviziile 2 si 1
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="codificare") ==
În ultima misiune în care a participat, Birkoff a trebuit să spargă sistemul de telecomunicaţii radio al infractorilor - ceva banal pentru el, desigur. Acum, că misiunea s-a terminat cu succes, Birkoff ştie codul de criptare folosit de inamici şi îl studiază, pentru a-şi putea scrie raportul misiunii.
Codul de criptare este un şir $C$ de caractere mici ale alfabetului englez de lungime $N$. Birkoff se întreabă în câte moduri se poate obţine şirul $C$ pornind de la un subşir $S$ al său de lungime $1$, folosind succesiv următoarele operaţii:
* prefixează şirul $S$ cu un caracter;
* sufixează şirul $S$ cu un caracter.
În timp ce voi citeaţi problema, Birkoff s-a apucat deja să-şi scrie raportul. Dacă vreţi să ajungeţi şi voi într-o bună zi ca el, va trebui să răspundeţi la întrebarea sa pentru orice subşir $S$ de lungime $1$.
Poveste şi cerinţă...
h2. Date de intrare
Fişierul de intrare $codificare.in$ conţine pe prima linie numărul natural $N$ şi pe a doua linie şirul de caractere $C$.
Fişierul de intrare $codificare.in$ ...
h2. Date de ieşire
În fişierul de ieşire $codificare.out$ se va găsi pe prima linie numărul natural $K$ reprezentând numărul de subşiruri distincte de lungime $1$ ale şirului $C$.
Pe fiecare din următoarele $K$ linii se vor regăsi un subşir $S$ şi numărul de moduri de a ajunge de la acesta la şirul $C$ modulo $666013$. Cele $K$ linii vor fi sortate lexicografic.
În fişierul de ieşire $codificare.out$ ...
h2. Restricţii
* $1$ $≤$ $N$ $≤$ $100 000$
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. codificare.in |_. codificare.out |
| 3
aba
| 2
a 2
b 2
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicaţie
Subşirurile distincte $S$ sunt $a$ şi $b$. Pentru fiecare există câte două modalităţi prin care se poate obţine şirul $C$:
* $a -> ab -> aba$
* $a -> ba -> aba$
* $b -> ba -> aba$
* $b -> ab -> aba$
...
== include(page="template/taskfooter" task_id="codificare") ==
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.