Fişierul intrare/ieşire: | poli.in, poli.out | Sursă | Lot Orastie 2004 |
Autor | Emanuela Cerchez | Adăugată de | |
Timp execuţie pe test | 0.05 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Poli
Un poliomino este o figură geometrică conexă formată din pătrate de arie 1 cu vârfurile în puncte de coordonate întregi. Evident, pătratele au laturile paralele cu axele de coordonate. Două pătrate se numesc adiacente dacă au o latură comună. O figură este conexă dacă din orice pătrat al figurii se poate ajunge în orice alt pătrat, trecând printr-o succesiune de pătrate în care oricare două pătrate consecutive sunt adiacente.
Două poliominouri sunt considerate identice dacă unul poate fi obţinut din celălalt printr-o translaţie.
O latură orizontală a unui poliomino este formată dintr-o succesiune de pătrate de arie 1 ale poliominoului, astfel încât oricare două pătrate consecutive au o latură verticală comună.
Un poliomino este orizontal-convex dacă orice linie orizontală (dreapta paralelă cu axa Ox) intersectează o singură latură orizontală a poliominoului sau niciuna.
De exemplu, poliominoul din Figura 1 este orizontal convex, dar poliominoul din Figura 2 nu este orizontal convex.
Scrieţi un program care să determine numărul de poliominouri orizontal convexe de arie n.
Date de intrare
Fişierul de intrare poli.in conţine o singură linie pe care se află un număr natural nenul n.
Date de ieşire
Fişierul de ieşire poli.outconţine o singură linie pe care se află numărul de poliominouri orizontal convexe de arie n.
Restricţii
- 0 < n ≤ 1000
Exemplu
poli.in | poli.out |
---|---|
3 | 6 |
poli.in | poli.out |
---|---|
9 | 6466 |