Pagini recente » Cod sursa (job #363311) | Cod sursa (job #1003107) | Cod sursa (job #2211336) | Cod sursa (job #3284690) | Cod sursa (job #59443)
Cod sursa(job #59443)
//using namespace std;
#define nmax 26
#define kmax 26
#include<stdio.h>
#include<stdlib.h>
FILE *fin=fopen("dezastru.in","r"),
*fout=fopen("dezastru.out","w");
int i,j,k,n;
float p[kmax],a[nmax][kmax];
float sol,sum;
int C(int n, int k)
{
if (n==1) return 0;
else if(n==k) return 1;
else if (k==1) return n;
else
{
return C(n-1,k) + C(n-1,k-1);
}
}
void solve()
{
int i,j;
a[1][1]=p[1];
for (i=1; i<=n; i++)
{
sum+=p[i];
a[i][1]=sum;
}
for (i=1; i<=n; i++)
for (j=2; j<=k; j++)
a[i][j]=a[i-1][j]+a[i-1][j-1]*p[i];
sol=a[n][k]/C(n,k);
}
int main()
{
fscanf(fin,"%d%d",&n,&k);
for (i=1; i<=n; i++)
fscanf(fin,"%f",&p[i]);
solve();
fprintf(fout,"%f\n",sol);
fclose(fin);
fclose(fout);
return 0;
}