Cod sursa(job #3241389)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 29 august 2024 20:41:01
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream  fin("dezastru.in");
ofstream fout("dezastru.out");
int n,p,s[30];
double v[30],P,S,nr;

int solutie(int k)
{
    if(k==p)
    {
        return 1;
    }
    return 0;
}

void BACK(int k)
{
    for(int i=s[k-1]+1; i<=n; i++)
    {
        s[k]=i;
        P=P*v[i];
        if(solutie(k))
        {
            nr++;
            S+=P;
        }
        else
        {
            BACK(k+1);
        }
        P=P/v[i];
    }
}

int main()
{
    fin>>n>>p;

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

    P=1;
    nr=0;
    s[0]=0;
    BACK(1);

    fout<< fixed << setprecision(6) << S/nr;

    return 0;
}