Cod sursa(job #148667)
Utilizator | Data | 4 martie 2008 17:59:42 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<fstream>
using namespace std;
ifstream in("permutari.in");
ofstream out("permutari.out");
void afisare(int n,int *s)
{int i;
for (i=0;i<n;i++)
out<<s[i]<<" ";
out<<endl;
}
int cont(int k,int *s)
{int i;
for (i=0;i<k;i++)
if (s[i]==s[k]) return 0;
return 1;
}
void back(int n)
{int k=0,*s;
s=new int [n];
s[k]=0;
while (k>=0)
if (s[k]<n)
{s[k]++;
if (cont(k,s))
if (k==n-1) afisare(n,s);
else s[++k]=0;
}
else k--;
}
int main()
{
int n;
in>>n;
back(n);
return 0;
}