Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | calandrinon.in, calandrinon.out | Sursă | FMI No Stress 6 |
Autor | Andrei Cristian Lambru | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Calandrinon
Problema spune că avem un şir de caractere de lungime N format doar din litere mici ale alfabetului englez. Pasărea cea albă vă roagă să eliminaţi o parte din aceste caractere astfel încât şirul rezultat în final în urma tuturor eliminărilor să aibe concomitent următoarele proprietăţi:
- Să conţină numai elemente distincte
- Să fie de lungime maximă posibilă
- Să fie minim lexicografic in comparaţie cu orice alt şir care ar respecta primele 2 condiţii după o posibilă serie de eliminări
De exemplu, dacă aţi avea şirul alblb, o posibilă serie de eliminări ar fi alegerea primului l şi al celui de-al doilea b astfel incât şirul rezultat in final va fi abl. Aceasta reprezintă şi soluţia acceptată de pasărea cea albă in cazul şirului de faţă. O altă serie de eliminări ar fi alegerea celui de-al doilea l şi a celui de-al doilea b obţinand şirul alb. In acest caz primele două proprietăţi sunt respectate, dar nu şi cea de-a treia deoarece am văzut că există o altă serie de eliminări in urma cărora obţinem şirul abl care din punct de vedere lexicografic este mai mic decat alb.
Date de intrare
Fişierul de intrare calandrinon.in va conţine pe prima linie o singură valoare, N, reprezentând numărul de caractere al şirului.
Pe cea de-a doua linie a fişierului se vor afla N reprezentând şirul iniţial.
Date de ieşire
Pe prima şi singura linie a fişierului de ieşire calandrinon.out se vor afla caracterele şirului rezultat in urma eliminărilor.
Restricţii
- 1 ≤ N ≤ 106
- Spunem că un şir de caractere a1,a2...aM este mai mic lexicografic decât un şir b1, b2...bM dacă există o poziţie 1 ≤ i ≤ M astfel încât a1 = b1, a2 = b2 ... ai-1 = bi-1 şi ai < bi.
- Pentru 25% din teste, sirul va putea conţine doar caracterele (a, b, c, d, e, f, g)
- Pentru 50% din teste, 1 ≤ N ≤ 2500
- Pentru 70% din teste, 1 ≤ N ≤ 105
Exemplu
calandrinon.in | calandrinon.out |
---|---|
29 vinefarasochemiiauzibatengeam | vefarsochiuzbtngm |