Cod sursa(job #1603490)

Utilizator andreibotilaBotila Andrei andreibotila Data 17 februarie 2016 16:48:57
Problema Generare de permutari Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>

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

	if(start == end){
		for(i = 0; i < end; i++){
			printf("%d ", v[i]);
		}
		printf("\n");		
	}
	else {
		for(i = 0; i < end; i++){
		int ok = 1;
		int j;
            for(j = 0; j < start; j++){
                if (v[j] == i + 1){
                    ok = 0;
                }
            }
            if(ok == 1){
                v[start] = i + 1;
                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;
}