Cod sursa(job #374089)

Utilizator Ionutz_LalaLala Marius Ionut Ionutz_Lala Data 15 decembrie 2009 22:20:36
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<cstdio>
FILE *in=fopen("dezastru.in","r"),*out=fopen("dezastru.out","w");
int N,K,i,st[30];
float v[30],prob,r=1;
void calcul()
{
	float q=1;
	for(i=1;i<=K;i++)
		q*=v[st[i]];
	prob+=q*r;
}
void bktr(int p)
{
	for(int pval=st[p-1]+1;pval<=N-K+p;pval++)
	{
		st[p]=pval;
		if(p==K) calcul();
		else bktr(p+1);
	}
}
int main()
{
	fscanf(in,"%d %d",&N,&K);
	for(i=1;i<=N;i++)
		fscanf(in,"%f",&v[i]);
	for(i=1;i<=N-K;i++) r*=i;
	for(i=K+1;i<=N;i++) r/=i;
	bktr(1);
	fprintf(out,"%f",prob);
	return 0;
}