Cod sursa(job #464831)
| Utilizator | Data | 21 iunie 2010 22:18:56 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <stdio.h>
#define nmax 10
using namespace std;
int uz[nmax],v[nmax],n;
FILE *fout=fopen("permutari.out","w");
inline void write(void)
{for(int i=1;i<=n;i++) fprintf(fout,"%d ",v[i]);
fprintf(fout,"\n");
}
inline void gen(int k)
{if(k>n) write();
else
for(int i=1;i<=n;i++)
if(!uz[i])
{v[k]=i; uz[i]=1; gen(k+1); uz[i]=0; }
}
int main(void)
{FILE *fin=fopen("permutari.in","r");
fscanf(fin,"%d",&n);
gen(1);
fclose(fin); fclose(fout);
return 0;
}
