Cod sursa(job #2493367)

Utilizator Moldovan_PaulMoldovan Paul Moldovan_Paul Data 16 noiembrie 2019 11:52:20
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int p,st[30],niv,n,m;
double v[30],s,nrapp;
double rezolv(int niv)
{
    double p=1;
    int i;
    for(i=1;i<=niv;i++)
    {
        p=p*(v[st[i]]);
    }
    return p;
}
int validare(int niv)
{
    int i;
    for(i=1;i<niv;i++)
        if(st[i]==st[niv]) return 0;
    return 1;
}
void bkt(int niv)
{
    int i;
    for(i=1;i<=n;i++)
    {
        st[niv]=i;
        if(validare(niv))
        {
            if(m==niv)
            {
                s=s+(rezolv(niv)/nrapp);
            }
            else bkt(niv+1);
        }
    }
}
int main()
{
    fin>>n>>m;
    nrapp=1;
    for(int i=2;i<=n;i++)
    {
        nrapp*=i;
    }
    for(int i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    bkt(1);
    fout<<s;
}