Cod sursa(job #810902)

Utilizator Mihnea35Gall Mihnea Mihnea35 Data 11 noiembrie 2012 11:13:50
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

using namespace std;

int x[26],n,k;
double p[26],s,pr=1;

void citire ()	{
	int i;
	FILE *f;
	f=fopen("dezastru.in","r");
	fscanf(f,"%d%d",&n,&k);
	for (i=1;i<=n;i++)
		fscanf(f,"%lf",&p[i]);
	fclose(f);
}

void solutie() {
	s+=pr;
}
void back (int vf) {
	int i;
	for (i=x[vf-1]+1;i<=n-k+vf;i++) {
		x[vf]=i;
		pr=pr*p[x[vf]];
		if (vf==k) solutie();
		else back(vf+1);
		pr=pr/p[x[vf]];
	}
}

int main ()	{
	citire();
	back(1);
	unsigned long v=1;
	int i;
	for (i=3;i<=n;i++) v*=i;
	FILE *g=fopen("dezastru.out","w");
	fprintf(g,"%.6lf",s/v);
	fclose(g);
return 0;
}