Cod sursa(job #1154971)
| Utilizator | Data | 26 martie 2014 15:39:11 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <stdio.h>
#include <string.h>
using namespace std;
int st[9],n,k,v[9];
void afisare()
{
int i;
for (i=1;i<=n;i++)
printf("%d ",st[i]);
printf("\n");
}
void back (int x)
{
int i;
if(x>n)
{
memset(v,0,sizeof(v));
for(i=1;i<=n;i++)
v[st[i]]++;
int t=1;
for(i=1;i<=n;i++)
if(v[i]!=1)t=0;
if(t==1)
afisare();
}
else
for (i=1;i<=n;i++)
{
st[x]=i;
back(x+1);
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
back(1);
return 0;
}