Cod sursa(job #489935)
Utilizator | dinu dan dinud | Data | 4 octombrie 2010 09:13:32 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
# include <stdio.h>
FILE *f = fopen("permutari.in","r");
FILE *g = fopen("permutari.out","w");
int x[100],n,k,m;
int cont (int k) {
int i;
for (i=1;i<k;i++)
if(x[i]==x[k])
return 0;
return 1;
}
void tipar () {
for (int i=1;i<=m;i++)
fprintf(g,"%d ",x[i]);
fprintf(g,"\n");
}
int main () {
fscanf(f,"%d",&m);
k=1;
x[1]=0;
while (k!=0) {
if (x[k]<m) {
x[k]++;
if(cont (k))
if(k==m)
tipar();
else{
k++;
x[k]=0;}
}
else k--;
}
fclose(f);
fclose(g);
return 0;
}