Un şir format din cifre trebuie să fie tastat în una sau mai multe sesiuni.
Există două tastaturi: tastatura A
care conţine taste cu toate combinaţiile de exact două cifre: tasta 00
, tasta 01, 02, …, 98, 99
și tastatura B
care conţine taste cu toate combinaţiile de exact trei cifre: tasta 000
, tasta 001, …, 998, 999
. Cifrele se vor introduce în una sau mai multe sesiuni, pentru o sesiune putându-se folosi o singură tastatură. Datorită unei ordonanțe de urgență, dacă o combinație de taste a fost introdusă cu una din tastaturi în sesiunea curentă și, continuând sesiunea, această combinație poate fi introdusă din nou, este necesar să continuăm sesiunea cel puțin până când o vom introduce din nou. În cazul în care introducem până atunci și alte taste, trebuie să continuăm sesiunea până când vom introduce ultima apariție a lor.
Astfel, dacă şirul este început folosind tastatura A
, se va scrie obligatoriu într-o sesiune 25 52 22 25 52
. Suntem obligați să tastăm până la ultima apariție a tastei 25
în sesiunea curentă, și când folosim tasta 52
suntem obligați să continuăm până la ultima apariție a acesteia. A se observa că cifrele de pe pozițiile subliniate sunt tot 2
și 5
, însă nu formează o tastă care se poate apăsa în sesiunea curentă. Deoarece se dorește un număr cât mai mare de sesiuni, se va începe o nouă sesiune în care se va scrie doar 57
.
Cerinţă
Cunoscându-se numărul total de cifre și secvența de cifre ce formează şirul, să se determine o modalitate de a despărţi textul astfel încât el să poată fi scris într-un număr maxim de sesiuni.
Date de intrare
Din fișierul text.in
se citesc:
- de pe prima linie un număr natural
N
reprezentând numărul de cifre - de pe următoarea linie
N
cifre, scrise fără spații, reprezentând şirul de tastat
Date de ieşire
În fișerul text.out
se afișează:
- pe prima linie
S
, reprezentând numărul maxim de sesiuni - pe fiecare dintre următoarele
S
linii, câte două numerep, k
, scrise cu spaţiu între ele, fiecare astfel de pereche descriind, în ordinea în care apar în text, secvențele tipărite în sesiuni: – poziția din șirul de cifre dat unde începe sesiuneai
și – tipul de tastatură folosită în sesiuneai
(2
pentru tastaturaA
,3
pentru tastaturaB
)
Restricţii
3 ≤ N ≤ 1 000 000
- cifrele din secvență sunt între
0
și9
- testele propuse asigură existența unei soluții pentru cerința dată
- dacă există mai multe soluții, se va furniza oricare dintre ele.
- pentru numărul corect de sesiuni, fără liniile care descriu soluția completă și corectă se acordă
50%
din punctaj.
Exemple
text.in
15
233323333333322
text.out
5
1 3
4 2
6 3
12 2
14 2
Explicație
Şirul poate fi scris în maximum 5
sesiuni astfel: 233
32
333
333
33
22
- prima sesiune, începe cu prima cifră și foloseşte tastatura
B
(cu taste de3
cifre) - următoarea sesiune începe la cifra a
3
-a și foloseşte tastaturaA
- a treia sesiune începe la cifra a
6
-a și foloseşte tastaturaB
- a patra sesiune începe la cifra a
12
-a și foloseşte tastaturaA
- ultima sesiune începe la cifra a
14
-a și foloseşte tastaturaA
text.in
8
46234623
text.out
3
1 3
4 2
6 3
Explicație
Soluția corespunde secvenţelor 462
34
623