Pagini recente » Cod sursa (job #2164742) | Cod sursa (job #875578) | Cod sursa (job #2164361) | Cod sursa (job #1066597) | Cod sursa (job #994316)
Cod sursa(job #994316)
#include <cstdio>
#include <bitset>
FILE *f=fopen("dezastru.in","r");
FILE *g=fopen("dezastru.out","w");
using namespace std;
const int Nmax = 26;
int v[ Nmax ],N,M;
double prob[ Nmax ],answer;
void calc()
{
long double rez=1;
for(int i = 1; i <= M; ++i)
rez*=1.0*prob[ v[ i ] ];
answer += rez;
}
void back(int k){
for( v[k] = v[k-1]+1; v[k] <= N-M+k; ++v[k] )
if(k<M)
back(k+1);
else calc();
}
int main()
{
fscanf(f,"%d%d",&N,&M);
for(int i = 1; i <= N; ++i)
fscanf(f,"%lf",&prob[i]);
back(1);
for(int i = 2; i<= M ; ++i ) answer *= i;
for(int i = N - M +1; i <= N; ++i) answer /= i;
fprintf(g,"%.6lf",answer);
return 0;
}