Cod sursa(job #275537)
| Utilizator | Data | 10 martie 2009 15:35:18 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include<stdio.h>
int s[20];
int n,k;
FILE *f = fopen("back.in","r");
int cond(int k){
int i;
for(i=1;i<k;i++)
if(s[i]==s[k])
return 0;
return 1;
}
void sol(){
int i;
for(i=1;i<=n;i++)
printf("%d ",s[i]);
printf("\n");
}
int main(){
fscanf(f,"%d",&n);
fclose(f);
k = 1;
s[1] = 0;
while(k>0)
if(s[k]<n){
s[k]++;
if(cond(k))
if(k==n)
sol();
else {
k++;
s[k] = 0;
}
}else
k--;
return 0;
}
