Numim - - platou un număr de forma cu proprietatea că cifrele sale sunt distincte şi aparţin mulţimii , , , . O -codificare constă în transformarea numărului în numărul , unde = + numărul de cifre din stânga cifrei care sunt mai mici decât pentru . Aplicând o -codificare unui număr obţinem un -cod.
Fie un şir format din secvenţe de cifre, în care fiecare secvenţă are aceeaşi lungime . Un val este o succesiune de astfel de secvenţe în care orice secvenţă care este un -cod, este urmată de o secvenţă care nu este un -cod şi orice secvenţă care nu este un -cod, este urmată de o secvenţă care este un -cod, cu excepţia ultimei secvenţe. Un val începe obligatoriu cu o secvenţă ce reprezintă un -cod şi se termină cu o secvenţă care nu este un -cod.
Primul caracter al unui val se poate afla pe o poziţie din care aparţine mulţimii , , , , .
Cerinţe
Scrieţi un program care:
- cunoscând numerele , şi un -cod, determină - -platoul căruia i s-a aplicat -codificarea.
- pentru un şir de cifre dat, determină lungimea celui mai lung val.
Date de intrare
Fişierul de intrare decod.in
conţine:
- pe prima linie cifrele şi separate printr-un spaţiu
- pe a doua linie un -cod a unui - - platou
- pe a treia linie un şir de cifre
Date de ieşire
Fişierul de ieşire decod.out
va conţine:
- pe prima linie - - platoul căruia i s-a aplicat -codificarea
- pe a doua linie lungimea celui mai lung val
Restricții și precizări
- şirul are cel mult de caractere
- Pentru rezolvarea cerinţei se acordă din punctaj şi pentru cerinţele şi din punctaj.
Exemplul 1
decod.in
3 5
12124
1111012124100111234511151
decod.out
57346
20
Explicație
Numărul este un - - platou, deoarece cifrele sale aparţin mulţimii {, , , , }. Aplicându-i o - codificare se obţine , deoarece în stânga lui nu există nici o cifră mai mică decât (), deoarece în stânga lui există o cifră mai mică decât () etc.
În şirul 1111012124100111234511151 avem un val de lungime .
Exemplul 2
decod.in
8 2
12
10121011101012101110111011101110
decod.out
89
20
Explicație
Numărul este un -cod a numărului .
În şirul 10121011101011101110111011201110 avem două valuri, iar valul maxim are lungimea egală cu .