Pagini recente » Cod sursa (job #2623240) | Cod sursa (job #3127482) | Cod sursa (job #1287486) | Cod sursa (job #467940) | Cod sursa (job #79214)
Cod sursa(job #79214)
# include <stdio.h>
const long int NRB=25;
const long int MAXN=(long int)1<<NRB;
long int n,k;
float s,v[NRB+1];
void citire()
{
FILE *f=fopen("dezastru.in","r");
fscanf(f,"%ld%ld",&n,&k);
long int i;
for (i=1;i<=n;i++) fscanf(f,"%f",&v[i]);
fclose(f);
}
void scrie(float sol)
{
FILE *g=fopen("dezastru.out","w");
fprintf(g,"%-.6f\n",sol);
fcloseall();
}
void gen(long int pos, float p, long int nrb)
{
if (nrb==k) s+=p;
if (pos<=n&&nrb<k)
{
gen(pos+1,p*v[pos],nrb+1);
gen(pos+1,p ,nrb );
}
}
int main()
{
citire();
long int i,j;
gen(1,1,0);
long long int c[30][30]={0};
c[0][0]=1;
for (i=1;i<=n;i++)
{
c[i][0]=1;
for (j=1;j<=k;j++)
c[i][j]=c[i-1][j]+c[i-1][j-1];
}
scrie(s/c[n][k]);
return 0;
}