Cod sursa(job #267790)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 27 februarie 2009 23:48:55
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<algorithm>
using namespace std;
short n,k;
double a[26],b[26][26];
double calc(){
    short i;
    double p;
    for(i=k+1,p=1; i<=n; p*=i++);
    for(i=1; i<=n-k; p/=i++);
    return p;}
void solve(){
    short i,j;
    double cnk;
    scanf("%hd%hd",&n,&k);
    for(i=1; i<=n; ++i)
        scanf("%lf",&a[i]);
    for(i=0; i<=n; ++i)
        b[i][0]=1;
    for(i=1; i<=n; ++i)
        for(j=1; j<=k; ++j)
            b[i][j]=b[i-1][j]+b[i-1][j-1]*a[i];
    cnk=calc();
    printf("%lf",b[n][k]/cnk);}
int main(){
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    solve();
    return 0;}