Cod sursa(job #353142)

Utilizator WildComunistChristian Ceausu WildComunist Data 4 octombrie 2009 12:12:54
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream.h>
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int st[30],m,n,c;
double v[30],p;


void calcule()
{double pl=1;
int i;
for(i=1;i<=m;i++) pl=pl*v[st[i]];
p=p+pl/c;
}
void bkt(){
int up,k;
k=1;
st[k]=0;
while(k){up=0;
	 while(!up&&st[k]<n-m+k){st[k]++;
				 up=1;
				}
	 if(up) if(k==m) calcule();
		else {k++;
		      st[k]=st[k-1];
		     }
	 else k--;
	}
}




int main()
{int i;
fin>>n>>m;
for(i=1;i<=n;i++) fin>>v[i];
c=1;
for(i=1;i<=m;i++) c=c*(n-i+1)/i;
bkt();
fout<<p;
return  0;
}