Cod sursa(job #2493373)

Utilizator huza_lisandraHuza Lisandra huza_lisandra Data 16 noiembrie 2019 11:53:46
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
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;
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>a[i];
    bck(1);
    fout<<s/nr;

    fin.close();
    fout.close();
    return 0;
}