Cod sursa(job #2863283)

Utilizator octavi26octavian octavi26 Data 6 martie 2022 15:56:13
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 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;
float p[N];
float v[N];
float 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 long i;
    for( i=a + 1; i<=n; i++ )
    {
        v[x] = p[i];
        if( x == k )
        {
            float prod = 1;
            for( long long j = 1; j<=k; j++ )
                prod *= v[j];
            prod *= k_fact;

            sol += prod;
        }
        else
        {
            Back( x + 1, i );
        }
    }
}

void Rezolvare()
{
    long long i;
    k_fact = 1;
    for( i=2; i<=k; i++ )
        k_fact *= i;
    long long n_fact = 1;
    for( i=2; i<=n; i++ )
        n_fact *= i;

    Back(1, 0);

    fout << sol / n_fact;
}

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