Cod sursa(job #1603454)

Utilizator andreibotilaBotila Andrei andreibotila Data 17 februarie 2016 15:59:41
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>

void permute(int v[], int start, int end){
	int i;

	if(start == end){
		for(i = 1; i <= end; i++){
			printf("%d ", v[i]);
		}
		printf("\n");		
	}
	else {
		for(i = 1; i <= end; i++){
		int ok = 1;
		int j;
            for(j = 1; j <= start; j++)
            {
                if (v[j] == i)
                {
                    ok = 0;
                }
            }
            if(ok == 1)
            {
                v[start + 1] = i;
                permute(v, start + 1, end);
            }
		}
	}
}

int main(){
	FILE *in, *out;
	in = fopen("permutari.in", "r");
	out = freopen("permutari.out", "w", stdout);

	int N, i;
	fscanf(in, "%d", &N);

	int v[N];
	for(i = 0; i < N; i++){
		v[i] = i + 1;
	}

	permute(v, 0, N);

	fclose(in);
	fclose(out);
	return 0;
}