Cod sursa(job #1557455)

Utilizator Alex_dudeDudescu Alexandru Alex_dude Data 27 decembrie 2015 16:12:27
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
#define nmax 26

FILE *fin = fopen("dezastru.in", "r"), *fout = fopen("dezastru.out", "w");

int n, m, nr;
float p[nmax], r;
int sol[nmax];




void sum()
{
    int i;
    float prod =1.0;

    for(i = 1; i <= m; i++)
    prod *= p[sol[i]];

    r+= (prod*m);
    nr += m;
}

float backt(int k)
{
    int i;

    for(i = 1; i <= n; i++)
    {
        sol[k]=i;

        if(sol[k-1] < sol[k])
            if(k == m)
                sum();
            else
                backt(k+1);
    }

}


int main()
{
    fscanf(fin, "%d %d", &n, &m);

    for( int i = 1; i <= n; i++)
        fscanf(fin, "%f", &p[i]);

    backt(1);

    fprintf(fout,"%.6f", r/nr);


    return 0;
}