Cerinţa
Se citeşte un număr natural nenul n, apoi n numere naturale distincte. Să se afişeze, în ordine lexicografică, permutările mulţimii formate din cele n numere citite.
Date de intrare
Fişierul de intrare permutari2.in conţine pe prima linie numărul n, ia r pe a doua linie n numere naturale.
Date de ieşire
Fişierul de ieşire permutari2.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
cele n numere de pe a doua linie a fişierului de intrare sunt mai mici decât 100
Exemplu
permutari2.in
3
4 7 3
permutari2.out
3 4 7
3 7 4
4 3 7
4 7 3
7 3 4
7 4 3
Răspunsuri la întrebare
Răspuns de
6
#include <fstream>
#include <algorithm>
using namespace std;
int x[10], a[10] ,n;
ofstream fout("permutari2.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++)
fout<<a[x[j]]<<" ";
fout<<a[x[n]];
fout<<endl;
}
else
back(k+1);
}
}
int main(){
ifstream fin("permutari2.in");
fin>>n;
for(int i=1;i<=n;++i)
fin >> a[i];
fin.close();
sort(a+1 , a+n+1);
back(1);
fout.close();
return 0;
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă