284
Cerinţa
Se citeşte un număr natural nenul n
. Să se afişeze, în ordine invers lexicografică, permutările mulţimii {1,2,..,n}
.
Date de intrare
Fişierul de intrare permutari1.in
conţine pe prima linie numărul n
.
Date de ieşire
Fişierul de ieşire permutari1.out
va conţine pe fiecare linie elementele unei permutări, separate prin câte un spaţiu.
Restricţii şi precizări
0 < n < 9
Exemplu
permutari1.in
3
permutari1.out
3 2 1 3 1 2 2 3 1 2 1 3 1 3 2 1 2 3
#include <bits/stdc++.h> using namespace std; ifstream cin("permutari1.in"); ofstream cout("permutari1.out"); int n; int x[10]; bool f[10]; void write() { for(int i = 1 ; i <= n ; ++i) cout << x[i] << ' '; cout << '\n'; } void Perm(int k) { if(k > n) { write(); return; } else { for(int i = n ; i >= 1 ; --i) { if(f[i]==0) { x[k]=i; f[i]=true; Perm(k+1); f[i]=false; } } } } int main() { cin >> n; Perm(1); return 0; }
Comentarii