Time limit: 1.2s
Memory limit: 16MB
Input: triang.in
Output: triang.out
O triangulație a unui poligon convex este o mulțime formată din diagonale ale poligonului care nu se intersectează în interiorul poligonului ci numai în vârfuri și care împart toată suprafața poligonului în triunghiuri.
Cerință
Fiind dat un poligon cu vârfuri notate să se genereze toate triangulațiile distincte ale poligonului. Două triangulații sunt distincte dacă diferă prin cel puțin o diagonală.
Date de intrare
În fișierul text triang.in
se află pe prima linie un singur număr natural reprezentând valoarea lui .
Date de ieșire
În fișierul text triang.out
se vor scrie:
- pe prima linie, numărul de triangulații distincte;
- pe fiecare din următoarele linii codul unei triangulații, în orice ordine. Codul este format cu ajutorul diagonalelor ce compun triangulația. O diagonală va fi precizată prin două numere reprezentând cele două vârfuri care o definesc.
, unde și sunt vârfurile unei diagonale din descompunere, produsul făcându-se peste toate diagonalele din descompunere (se consideră pentru mulțimea vidă).
Restricții și precizări
- Se acordă din punctaj doar pentru numărul de triangulații distincte
- Enunțul si restricțiile au fost modificate
Exemplu
triang.in
5
triang.out
5
19740
77562
116064
58240
39198
Explicații
Descompunerile sunt: