Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | expresii2.in, expresii2.out | Sursă | preONI 2007, Runda 3 |
Autor | Daniel Pasaila | Adăugată de | |
Timp execuţie pe test | 0.05 sec | Limită de memorie | 20096 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Expresii 2
O exrpresie logica este formata din variabile (litere mari ale alfabetului latin) si operatori ( + e disjunctie, * conjunctie si ! negatie). De exemplu, !((A + B) * A) este o expresie logica in forma infixata. O expresie in forma postfixata se remarca prin disparitia parantezelor si asezarea operatorilor la sfarsitul ei. Iata un exemplu de expresii, in forma infixata si postfixata:
forma infixata | forma postfixata |
---|---|
!((A + B) * A) | AB+A*! |
(A + B) * C * (B + A) | AB+C*BA+* |
Consideram o ordine lexicografica pe multimea operatorilor si cea a variabilelor ($a$..$z$ < + < * < !). Se cere, mai intai, sa se numere toate expresiile in forma postfixata de lungime N ce au variabilele printre primele K litere ale alfabetului latin, iar operatorii printre cei amintiti mai sus. Se cere apoi sa se afiseze expresia de pe pozitia P din lista ordonata de expresii (prima expresie din lista e pe pozitia 1).
Date de intrare
Fisierul expresii2.in va contine, pe prima linie, N, K si P.
Date de iesire
Fisierul expresii.out va contine pe prima linie numarul de expresii posibile, iar pe a doua linie a P-a expresie din lista sortata lexicografic.
Restrictii
- 1 ≤ N ≤ 30
- 1 ≤ K ≤ 26
- 1 ≤ P ≤ numarul de expresii posibile
- N si K vor fi alesi in asa fel incat numarul de expresii sa fie mai mic decat 263
- 40% din teste vor avea P = 1
Exemplu
expresii2.in | expresii2.out |
---|---|
4 2 3 | 26 AA!+ |
Explicatie
Iata primele 5 dintre 26 de expresii posibile:
AA+!
AA*!
AA!+
AA!*
AB+!