Se citeşte un număr natural nenul n
. Să se afişeze, în ordine lexicografică, permutările mulţimii {1,2,..,n}
.
Date de intrare
Fişierul de intrare permutari.in
conţine pe prima linie numărul n
.
Date de ieşire
Fişierul de ieşire permutari.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
permutari.in
3
permutari.out
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
Solutie
#include <fstream> using namespace std; int x[10],n; ifstream cin("permutari.in"); ofstream cout("permutari.out"); int ok(int k) { for(int i=1;i<k;i++) { if(x[k]==x[i])return 0; } return 1; } void back(int k) { for(int i=1;i<=n;i++) { x[k]=i; if(ok(k)) { if(k==n) { for( int j=1;j<=n;j++) cout<<x[j]<<" "; cout<<endl; } else back(k+1); } } } int main() { cin>>n; back(1); return 0; }