Cod sursa(job #478442)

Utilizator a.stanciuStanciu Adrian a.stanciu Data 18 august 2010 17:41:32
Problema Submultimi Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>

void print(int *v, int k, FILE *g)
{
	int i;

	for (i = 0; i < k; i++)
		fprintf(g, "%d ", v[i]);
	fprintf(g, "\n");
}

int valid(int *v, int k)
{
	int i;

	for (i = 0; i < k; i++)
		if (v[i] >= v[k]) return 0;

	return 1;
}

void back(int *v, int n, int k, FILE *g)
{
	int i;

	if (k != 0) print(v, k, g);

	for (i = 1; i <= n; i++)
	{
		v[k] = i;
		if (valid(v, k)) back(v, n, k + 1, g);
	}
}

int main()
{
	int n;
	FILE *f, *g;

	f = fopen("submultimi.in", "r");
	g = fopen("submultimi.out", "w");

	fscanf(f, "%d", &n);

	int *v = (int *)malloc(sizeof(int) * n);
	
	back(v, n, 0, g);

	fclose(f);
	fclose(g);

	return 0;
}