Cod sursa(job #3120452)

Utilizator unomMirel Costel unom Data 7 aprilie 2023 01:07:30
Problema Dezastru Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <iomanip>

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");
long double v[30];
long double s;
long double t;
long long imp;
int x[30];
int n, p;

void bk(int k)
{
    for(int i = x[k-1]+1; i<=n; i++)
    {
        x[k] = i;
        if(k == p)
        {
            t = 1;
            for(int j = 1; j<=p; j++)
            {
                t *= v[x[j]];
            }
            t *= 2;
            s += t;
        }
        else
        {
            bk(k+1);
        }

    }
}

int main()
{
    f>>n>>p;
    for(int i = 1; i<=n; i++)
    {
        f>>v[i];
    }

    bk(1);

    imp = 1;
    for(int i = n; i>=n-p+1; i--)
    {
        imp *= i;
    }

    long double ans = s / imp;
    g<<setprecision(6)<<fixed<<ans;

    return 0;
}