Cod sursa(job #2493459)

Utilizator moldo2002Moldovan Rares Nicolae moldo2002 Data 16 noiembrie 2019 12:41:33
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;

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

int st[20],n,kk;
double suma,pr,a[30],v[1002],c;
void tipar(int k)
{
    pr=1;
    for(int i=1; i<=kk; i++)
    {
        pr=pr*v[st[i]];
    }
    suma=suma+pr;
    c++;
}

int valid(int k)
{
    for(int i=1; i<k; i++)
    {
        if(st[i]==st[k])
            return 0;
    }

    return 1;
}

void bkt(int k)
{
    for(int i=1; i<=n; i++)
    {
        st[k]=i;
        if(valid(k))
        {
            if(k==kk){
                tipar(k);
            }
            else bkt(k+1);
        }
    }
}


int main()
{
    fin>>n>>kk;
    for(int i=1; i<=n; i++)
    {
        fin>>v[i];
    }
    bkt(1);
    fout<<setprecision(6)<<suma/c;
    fin.close();
    fout.close();
}