Combinatorica


 * Teorie si aplicatii: Permutari **

** Probleme propuse: **
Verificaţi dacă elementele citite formează o permutare a mulţimii {1,2,...,n}. Scrieţi în fişierul ** permutare.out ** mesajul ** DA ** dacă şirul citit este o permutare sau ** NU, ** în caz contrar. Restricţii: 1<= n <= 1.000.000
 * 1. ** Se citesc din fişierul ** permutare.in ** de pe prima linie numărul n, iar de pe a doua linie n elemente numere naturale.

a mulţimii {1,2,...,n}. Scrieţi în fişierul **patrat.out** elementele permutării p^2=pop. Restricţii: 1<= n <= 1.000.000
 * 2. ** Se citesc din fişierul ** patrat.in ** de pe prima linie numărul n, iar de pe a doua linie n elementele unei permutări p

a mulţimii {1,2,...,n}, iar de pe a treia linie elementele unei permutări q. Scrieţi în fişierul ** compunere.out ** pe prima linie elementele permutării poq, iar pe a doua linie elementele permutării qop. Restricţii: 1<= n <= 1.000.000
 * 3. ** Se citesc din fişierul ** compunere.in ** de pe prima linie numărul n, de pe a doua linie n elementele unei permutări p

a mulţimii {1,2,...,n}. Scrieţi în fişierul de ieşire ** inversa.out ** elementele permutării inverse a lui p, adică permutarea q pentru care p o q = e, unde e=(1,2,...,n) este permutarea identică. Restricţii: 1<= n <= 1.000.000
 * 4. ** Se citesc din fişierul ** inversa.in ** de pe prima linie numărul n, iar de pe a doua linie n elementele unei permutări p

a multimii {1,2,...,n}. Scrieţi în fişierul ** ordin.out ** ordinul permutării p, adică valoarea k pentru care p^k=e, unde p^k = p o p o...o p. Restricţii: 1<= n <= 1.000.000
 * 5. ** Se citesc din fişierul ** ordin.in ** de pe prima linie numărul n, iar de pe a doua linie n elementele unei permutări p

Combinări
1. Calculul combinarilor -

2. Partitionarea unui numar Partitionarea unui numar

1. Ordinul unei permutari