Cod sursa(job #2493359)

Utilizator huza_lisandraHuza Lisandra huza_lisandra Data 16 noiembrie 2019 11:49:44
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
using namespace std;
int n,k,st[27];
double a[27],s,nr;
int validare(int niv)
{
    int i,ok=1;
    for(i=1;i<niv;i++)
        if(st[i]==st[niv])
            ok=0;
    return ok;
}
int solutie(int niv)
{
    if(niv==k)
        return 1;
    else
        return 0;
}
void inmultire(int niv)
{
    int i;
    double m;
    m=1.0;
    for(i=1;i<=niv;i++)
        m=a[st[i]]*m;
    s=s+m;
}
void bck(int niv)
{
    int i;
    for(i=1;i<=n;i++)
    {
        st[niv]=i;
        if(validare(niv)==1)
        {
            if(solutie(niv)==1)
            {
                inmultire(niv);
                nr++;
            }
            else
                bck(niv+1);
        }

    }
}
int main()
{
    int i;
    cin>>n>>k;
    for(i=1;i<=n;i++)
        cin>>a[i];
    bck(1);
    cout<<s/nr;

    return 0;
}