permutari


 * 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