Seif

Time limit: 0.03s Memory limit: 8MB Input: seif.in Output: seif.out

Top Secret 2...

Cerință

După ce a auzit de marele furt de la Luvru, în care hoții au reușit să fure bijuterii regale în valoare de 88 de milioane de euro, Dorel s-a gândit că ar fi cazul să fure ceva dintr-un muzeu din apropierea lui. Dorel locuiește într-un sat micuț și, din păcate, în acesta nu se află niciun muzeu (cu exponate prea valoroase). Din această cauză, Dorel s-a dus la al doilea cel mai bun loc din care poți fura: banca.

După un mare jaf, Dorel a reușit să fure de la bancă doar un seif, care era închis cu un cod pe care îl știa doar șeful băncii, aflat momentan în vacanță în Dubai. Din fericire pentru Dorel, pe seif scria un cuvânt SS și un număr XX. Dorel, fiind un geniu înnăscut, și-a dat seama că parola seifului este cel mai mare cuvânt lexicografic care se poate obține din SS, după aplicarea a maximum XX operații de tipul: "alege orice literă din SS și crește sau scade valoarea acesteia cu 11". De exemplu, dacă aplicăm operația pe litera cc, aceasta poate deveni dd sau bb. Dacă creștem valoarea literei zz cu 11, aceasta va deveni aa, iar dacă scădem valoarea literei aa cu 11, aceasta va deveni zz.

Dorel vă cere ajutorul să găsiți codul seifului, pentru că el acum caută un muzeu pe care să-l poată jefui.

Date de intrare

Pe prima linie a fișierului de intrare seif.in se găsesc 22 numere întregi, NN și XX, care reprezintă lungimea cuvântului SS, respectiv numărul maxim de operații pe care le poți aplica asupra lui SS.
Pe a doua linie se găsește cuvântul SS, care este format din exact NN litere mici din alfabetul englez.

Date de ieșire

Pe prima linie a fișierului de ieșire seif.out se va găsi cel mai mare cuvânt lexicografic PP care se poate obține din SS, folosind de maximum XX ori operația descrisă de Dorel.

Restricții și precizări

  • 1N1061 \leq N \leq 10^{6};
  • 0X1090 \leq X \leq 10^{9};
  • SiS_{i} este o literă mică din alfabetul englez, 0i<N0 \leq i < N;
  • Un cuvânt a1,a2,...,ana_1,a_2,...,a_n este mai mare lexicografic decât un alt cuvânt b1,b2,...,bnb_1,b_2,...,b_n dacă există un număr întreg pp mai mic sau egal cu NN astfel încât a1=b1,a2=b2,...,ap1=bp1a_1 = b_1, a_2 = b_2, ... , a_{p–1} = b_{p–1}, iar ap>bpa_p > b_p.
  • Nu recomandăm să jefuiți bănci sau muzee!
# Punctaj Restricții
1 53 1N100 0001 \leq N \leq 100 \ 000
2 18 1N500 0001 \leq N \leq 500 \ 000
2 29 Fără restricții suplimentare

Exemplul 1

seif.in

3 1
bcd

seif.out

ccd

Explicație

Putem forma 66 cuvinte diferite: acdacd, ccdccd, bbdbbd, bddbdd, bccbcc, bcebce. Dintre toate, ccdccd este cel mai mare lexicografic.

Exemplul 2

seif.in

3 3
xde

seif.out

zee

Explicație

Câteva exemple de cuvinte pe care le putem forma sunt: xdhxdh, zeezee, zddzdd. Dintre toate cuvintele posibile (nu doar cele enumerate), zeezee este cel mai mare lexicografic.

Log in or sign up to be able to send submissions!