Pagini recente » Cod sursa (job #1194403) | Cod sursa (job #2060948) | Cod sursa (job #2788032) | Borderou de evaluare (job #1036720) | Cod sursa (job #1497807)
#include <stdio.h>
#include <stdlib.h>
int k, n, pozy, iglob, y, x;
int perm_curenta[9], pozoc[9], ycaut[5];
void perm(int nr, FILE *fout){
int i;
if(x<k){
if(nr==n)
y++;
if(y==ycaut[pozy]){
for(i=0;i<n;i++)
fprintf(fout, "%d ", perm_curenta[i]);
fprintf(fout, "\n");
pozy++;
x++;
}
for(i=0;i<n;i++){
if(pozoc[i]==0){
pozoc[i]=1;
perm_curenta[iglob]=i+1;
iglob++;
perm(nr+1, fout);
iglob--;
pozoc[i]=0;
}
}
}
}
int main(){
FILE *fin, *fout;
int i;
fin=fopen("permutari.in", "r");
fout=fopen("permutari.out", "w");
fscanf(fin, "%d%d", &n, &k);
//printf("%d", k);
for(i=0;i<k;i++)
fscanf(fin, "%d", &ycaut[i]);
pozy=0;
iglob=0;
y=0;
x=0;
perm(0, fout);
fclose(fin);
fclose(fout);
return 0;
}