Cod sursa(job #1678795)

Utilizator xandruGuzun Alexandru xandru Data 7 aprilie 2016 15:35:11
Problema Generare de permutari Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
 using namespace std;
ifstream cin("permutari.in");
ofstream cout("permutari.out");
 int x[30];
 int n,nr;

 void tipar()
 {
 int i;
 for(i=1;i<=n;i++)
 cout<<x[i]<<" ";
 cout<<'\n';
 nr++;
 }

 int valid(int k)
 {
int i;
 for(i=1;i<k;i++)
 if(x[i]==x[k])return 0;
 return 1;
 }

 void back()
 {
 int i,k=1;
 x[1]=0;
 while(k>0)//stiva nu este vida
 {
 while(x[k]<n)
 {
 x[k]=x[k]+1;
 if(valid(k))
 if(k==n) tipar();
 else
 {k=k+1;x[k]=0;}
 }
 k=k-1;
 }
 }

 int main()
 {
 cin>>n;
 back();
 cout<<nr;
 }