Cod sursa(job #184649)
Utilizator | Data | 24 aprilie 2008 00:17:51 | |
---|---|---|---|
Problema | Dezastru | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <stdio.h>
#define FOR(i,s,d) for(i=(s);i<=(d);++i)
int n,k,i,j,l;
double v[26],m[26][26],f_k=1,f_n=1,fn_k=1,sf;
int main()
{
freopen ("dezastru.in","r",stdin);
freopen ("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
FOR(i,1,n)scanf("%lf",&v[i]);
FOR(i,2,n)f_n*=i;
FOR(i,2,k)f_k*=i;
FOR(i,2,n-k)fn_k*=i;
FOR(i,1,n)m[1][i]=v[i];
FOR (l,2,k)
FOR (i,1,n-l+1)
FOR (j,i+1,n)
m[l][i]+=m[l-1][j]*v[i];
FOR (i,1,n-k+1)
sf+=m[k][i]*f_k*fn_k;
sf/=f_n;
printf("%0.6lf",sf);
return 0;
}