Cod sursa(job #2388399)

Utilizator federicisFedericis Alexandru federicis Data 25 martie 2019 23:57:36
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

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

long double v[26],prod[10000]={1},sum=0,val[26];
int nr=0,n,k,uz[26];

int bck(int x)
{
    if(x>k)
    {
        nr++;
        prod[nr]=1;
        for(int i=1;i<=k;i++)
        {
            prod[nr]*=val[i];
        }

    }
    else
    {
    for(int i=1;i<=n;i++)
    {
     if(uz[i]==0)
     {
         val[x]=v[i];
         uz[i]=1;
         bck(x+1);
         uz[i]=0;
     }
    }
    }
}

int main()
{
    in>>n>>k;
    for(int i=1;i<=n;i++)
    {
        in>>v[i];
    }
    bck(1);
    for(int i=1;i<=nr;i++)
    {
        sum+=prod[i]/nr;
    }
    out<<setprecision(9)<<sum;
    return 0;
}