Cod sursa(job #1325441)

Utilizator LegionHagiu Stefan Legion Data 23 ianuarie 2015 22:14:44
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int n,k,total;
double d,dez[26];
void rez(int acum,int panaacum,double produs)
{
    register int i;
    if (acum==k)
    {
        d+=produs;
        total++;
    }
    else
    {
        for (i=panaacum+1;k-acum<=n-i+1;i++)
        {
            rez(acum+1,i,produs*dez[i]);
        }
    }
}
int main()
{
    freopen("dezastru.in", "rt", stdin);
    freopen("dezastru.out", "wt", stdout);
    int i,j;
    scanf("%d %d", &n, &k);
    for (i = 1; i <= n; i++)
        scanf("%lf", dez + i);
    rez(0,0,1);
    printf("%.6lf\n", d / total);
    return 0;
}