Cod sursa(job #505232)

Utilizator sunt_emoSunt emo sunt_emo Data 1 decembrie 2010 03:16:23
Problema Submultimi Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

void generate (short*,short,short);
void write (short*,short);

FILE *in,*out;

int main () {
	short a[18],n;
	in=fopen ("submultimi.in","r");
	out=fopen ("submultimi.out","w");
	fscanf (in,"%hd",&n);
	generate (a,n,0);
	fclose (in); fclose (out);
	return 0;
}

void generate (short *a,short n,short i) {
	if (i==n) write (a,n);
	else {
		a[i]=1;
		generate (a,n,i+1);
		a[i]=0;
		generate (a,n,i+1);
	}
}

void write (short *a,short n) {
	short i;
	for (i=0; i<n; i++)
		if (a[i]) fprintf (out,"%hd ",i+1);
	fprintf (out,"\n");
}