Cod sursa(job #2863341)

Utilizator octavi26octavian octavi26 Data 6 martie 2022 16:25:39
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define N 104

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

long long n, k;
long long k_fact;
long double p[N];
long double v[N];
long double sol;

void Citire()
{
    long long i;
    fin >> n >> k;
    for( i=1; i<=n; i++ )
        fin >> p[i];
}

void Back( long long x, long long a, long double prod )
{
    long long i;
    for( i=a + 1; i<=n; i++ )
    {
        v[x] = p[i];
        if( x == k )
        {
            sol += prod * v[x];
        }
        else
        {
            Back( x + 1, i, prod * v[x] );
        }
    }
}

void Rezolvare()
{
    long long i;

    Back(1, 0, 1);
    for( i=k + 1; i<=n; i++ )
        sol /= i;
    for( i=1; i<=n - k; i++ )
        sol *= i;

    fout << setprecision(10) << sol;
}

int main()
{
    Citire();
    Rezolvare();
    //cout << sizeof( Lee ) / 1024.0 / 1024.0;
    return 0;
}