Cod sursa(job #438051)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 10 aprilie 2010 14:16:44
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>


int N, K;
int i;
long int fact;
double prob[30], S;

void back (int k, double x, int last)
{
	if (k == K + 1) 
	{
		S += x;
		fact ++;
	} 
	else 
	{
		for (i=last + 1; i<= N - K + k; ++i)
			back (k + 1, x * prob[i], i);
	}
}

int main()
{
	FILE *f = fopen ("dezastru.in", "r");
	FILE *g = fopen ("dezastru.out", "w");
	fscanf (g,"%d %d", &N, &K);
	for (i=1; i<=N; ++i) 
		fscanf (g,"%lf", &prob[i]);
	
	back(1, 1, 0);
	
	fprintf(g, "%lf\n", S / fact);

	fclose(g);
	fclose(f);
	return 0;
}