Cod sursa(job #1411204)

Utilizator BogdanisarBurcea Bogdan Madalin Bogdanisar Data 31 martie 2015 15:35:42
Problema Dezastru Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<bitset>
#include<cstring>
#include<iomanip>

#define ull unsigned long long
#define ll long long

using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
ll N,K;
float v[27];
float a[27][27];

int main()
{
    f>>N>>K;
    for (int i=0;i<=N;++i)
        a[i][0]=1;
    for (int i=1;i<=N;++i)
        f>>v[i];
    for (ll i=1;i<=N;++i)
    {
        int lim=min(K,i);
        for (int j=1;j<=lim;++j)
            a[i][j]=a[i-1][j-1]*v[i]+a[i-1][j]; // a[i][j]=suma tuturor produselor de j factori alesi din primele i numere;
    }
    ll aranj=1,nr=N,temp=K;
    while (temp--)
    {
        aranj*=nr;
        --nr;
    }
    ll perm=1;
    for (int i=1;i<=K;++i)
        perm*=i;
    g<<setprecision(6)<<fixed;
    g<<a[N][K]*perm/aranj;
    f.close();g.close();
    return 0;
}