Cod sursa(job #1153122)

Utilizator mateidanutDanut Gabriel Matei mateidanut Data 25 martie 2014 11:36:07
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <iomanip>
#define NMAX 28
#define KMAX 28
using namespace std;

double s[NMAX][KMAX], a[NMAX];
int i, j, n, k;
long long c;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

int main()
{
    f>>n>>k;
    for (i=1; i<=n; ++i)
        f>>a[i];
    for (i=0; i<=n; ++i)
        s[i][0]=1;
    for (i=1; i<=n; ++i)
        for (j=1; j<=i && j<=k; ++j)
            s[i][j]=s[i-1][j]+a[i]*s[i-1][j-1];
    c=1;
    if (k>n-k) {
        for (i=k+1; i<=n; ++i)
            c*=i;
        for (i=2; i<=n-k; ++i)
            c/=i;
    }
    else {
        for (i=n-k+1; i<=n; ++i)
            c*=i;
        for (i=2; i<=k; ++i)
            c/=i;
    }
    g<<fixed<<setprecision(6)<<s[n][k]/c;
    return 0;
}