Pagini recente » Cod sursa (job #1931712) | Cod sursa (job #1300708) | Cod sursa (job #1807417) | Cod sursa (job #968947) | Cod sursa (job #1490894)
#include <cstdio>
using namespace std;
double v[26],s,ras;
int sol[26];
int mat[26][26];
int n,k;
FILE *in,*out;
void fc()
{
double p=1;
int i;
for(i=1;i<=k;i++)
p=p*v[sol[i]];
s=s+p;
}
void bkt(int p)
{
if(p-1==k)
fc();
else
{
for(int i=sol[p-1];i<n-k+p;i++)
{
sol[p]=i+1;
bkt(p+1);
}
}
}
int main()
{
in=fopen("dezastru.in","r");
out=fopen("dezastru.out","w");
int i,j;
fscanf(in,"%d%d",&n,&k);
for(i=1;i<=n;i++)
fscanf(in,"%lf",&v[i]);
bkt(1);
/*for(j=1;j<=n;j++)
mat[j][j]=1;*/
for(i=1;i<=n;i++)
mat[i][0]=1;
mat[0][0]= 1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
mat[i][j]=mat[i-1][j]+mat[i-1][j-1];
}
ras=s/(double)mat[n][k];
fprintf(out,"%.6lf",ras);
return 0;
}