Cod sursa(job #2026955)

Utilizator patcasrarespatcas rares danut patcasrares Data 25 septembrie 2017 13:41:06
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k;
long double x[35],s,t,nr,r[25][25];
int y[35];
void ve(long double &x)
{
    x=1;
    for(int i=1;i<=n;i++)
        x*=i;
}
long double fct(int x)
{
    long double r=1;
    for(int i=1;i<=x;i++)
        r*=i;
    return r;
}
int main()
{
    fin>>n>>k;
    t=1;
    for(int i=1;i<=n;i++)
        fin>>x[i];
    if(k==0)
    {
        fout<<1;
        return 0;
    }
    ve(nr);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=k;j++)
        {
            if(j==1)
                r[i][j]=x[i];
            else
                for(int h=i-1;h>=1;h--)
                    r[i][j]+=r[h][j-1]*x[i];
            if(j==k)
                s+=r[i][j];
        }
    fout<<s*fct(n-k)*fct(k)/nr;
}