Pagini recente » Cod sursa (job #2109331) | Cod sursa (job #792764) | Cod sursa (job #2071056) | Cod sursa (job #750829) | Cod sursa (job #195464)
Cod sursa(job #195464)
#include<fstream.h>
//using namespace std;
int N, K;
long double p[30];
long double Pt;
long long cnk=1;
ofstream g("dezastru.out");
void Comb(int n, int k){
int i;
if((k<<1)<n)
k=n-k, n-=k;
for(i=k+1;i<=n;++i)
cnk*=i;
for(i=1;i<=n-k;++i)
cnk/=i;
}
void back(int i, int x, long double Pc){
int j, l=N-K+i+1;
for(j=x;j<l;++j){
Pc*=p[j];
if(i==K)
Pt+=Pc/cnk;
else back(i+1, j+1, Pc);
Pc/=p[j];
}
}
int main(){
int i;
ifstream f("dezastru.in");
f>>N>>K;
for(i=1;i<=N;i++)
f>>p[i];
f.close();
Comb(N,K);
back(1,1,1);
g<<Pt<<'\n';
g.close();
return 0;
}