Pagini recente » Borderou de evaluare (job #826631) | Cod sursa (job #3287496) | Cod sursa (job #2680522) | Cod sursa (job #303093) | Cod sursa (job #945610)
Cod sursa(job #945610)
#include<stdio.h>
double v[26],sol[26][26],c=1;
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int n,k,i,j,aux;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%lf",&v[i]);
sol[0][0]=1;
for(i=1;i<=25;i++)
{
sol[i][0]=1;
for(j=1;j<=25;j++)
sol[i][j]=sol[i-1][j]+sol[i-1][j-1]*v[i];
}
aux=n-k;
for(i=k+1;i<=n;i++)
{
c=c*(double)i/(double)aux;
if(aux>1)
aux--;
}
printf("%lf\n",sol[n][k]/c);
return 0;
}
/*#include<stdio.h>
int n,k,nr;
double v[26],sol;
void comb(int x,int p,double aux)
{
int i;
aux=aux*v[x];
if(p==k)
{
nr++;
sol=sol+aux;
return ;
}
for(i=x+1;i<=n-(k-p)+1;i++)
comb(i,p+1,aux);
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%lf",&v[i]);
v[0]=1;
comb(0,0,1);
sol=(double)sol/nr;
printf("%lf\n",sol);
return 0;
}
*/