Pagini recente » Cod sursa (job #936671) | Cod sursa (job #1838164) | Cod sursa (job #563966) | Cod sursa (job #865059) | Cod sursa (job #1443047)
#include <cstdio>
void printUsedDigits(int used[], int size, FILE* fout)
{
for(int i = 0; i < size; i++)
{
fprintf(fout, "%d ", used[i]);
}
fprintf(fout, "\n");
}
int contains(int used[], int size, int elem)
{
for(int i = 0; i < size; i++)
{
if(used[i] == elem)
return 1;
}
return 0;
}
void permute(int a[], int sizeA, int used[], int sizeUsed, FILE* fout)
{
if(sizeA == sizeUsed)
{
printUsedDigits(used, sizeUsed, fout);
return;
}
for(int i = 0; i < sizeA; i++)
{
if(!contains(used, sizeUsed, a[i]))
{
used[sizeUsed] = a[i];
permute(a, sizeA, used, sizeUsed + 1, fout);
}
}
}
int main()
{
FILE* fin = fopen("permutari.in", "r");
FILE* fout = fopen("permutari.out", "w");
int n;
int sequence[8];
int used[8];
fscanf(fin, "%d", &n);
for(int i = 0; i < n; i++)
{
sequence[i] = i + 1;
}
permute(sequence, n, used, 0, fout);
fclose(fin);
fclose(fout);
return 0;
}