Cod sursa(job #2436414)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 5 iulie 2019 17:46:13
Problema Dezastru Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;

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

int st[25],n,m,c=1;
double v[25],p[10000000],s;

bool valid(int k)
{
    for(int i=1;i<k;i++)
        if(st[k]==st[i])
        return 0;
    return 1;
}
void afisare(){
    p[c]=1;
    for(int i=1;i<=m;i++)
    p[c]=p[c]*v[st[i]];
    c++;

}

void bt(int k){
    for(int i=1;i<=n;i++)
    {
        st[k]=i;
        if(valid(k)){

            if(k==n)
                afisare();
        else
            bt(k+1);
        }
    }
}
int main() {
    in>>n>>m;
    for(int i=1;i<=n;i++)
        in>>v[i];
    bt(1);
    c--;
    for(int i=1;i<=c;i++)
        s+=p[i]/c;
    out<<setprecision(6)<<fixed;
    out<<s;
}