Cod sursa(job #2012648)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 19 august 2017 11:49:53
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
long double a[30][30], sum[30], v[30], prod[30];
int n,k;
int main()
{
    f>>n>>k;
    prod[0]=1;
    for(int i=1;i<=n;++i)
    {
        f>>v[i];
        prod[i]=v[i]*prod[i-1];
    }
    for(int i=1;i<=n;++i) sum[i]=1;
    for(int i=1;i<=k;++i)
    {
        a[i][i]=prod[i];
        for(int j=i+1;j<=n;++j)
        {
            a[i][j]=a[i][j-1]+v[j]*sum[j-1];
        }
        for(int j=i+1;j<=n;++j)
        {
            sum[j]=a[i][j];
        }
    }
    for(int i=2;i<=k;++i)
    {
        a[k][n]*=i;
    }
    for(int i=2;i<=n;++i)
    {
        a[k][n]/=i;
    }
    for(int i=2;i<=n-k;++i)
    {
        a[k][n]*=i;
    }
    g<<setprecision(6)<<a[k][n];
    return 0;
}