Cod sursa(job #1017256)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 27 octombrie 2013 16:29:55
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

const int Nmax = 30;

int N, M;
double A[Nmax][Nmax], P[Nmax];
long long C[Nmax][Nmax];

void gen()
{
    A[0][0] = 1; C[0][0] = 1;

    for ( int i = 1; i <= N; ++i )
    {
        A[i][0] = C[i][0] = 1;
    }

    for ( int i = 1; i <= N; ++i )
            for ( int j = 1; j <= M; ++j )
            {
                C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
                A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * P[i];
            }
}

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

    f >> N >> M;

    for ( int i = 1; i <= N; ++i )
            f >> P[i];

    gen();

    g << fixed << setprecision( 6 );
    g << A[N][M] / C[N][M];

    f.close();
    g.close();

    return 0;
}