Cod sursa(job #1470932)

Utilizator ciocan_catalinCiocan Catalin - Iulian ciocan_catalin Data 12 august 2015 17:35:39
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>

using namespace std;
int n,k,a[30];
long long fact;
double v[30];

int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    int i,j,vmax;
    double prob,prod;
    prob = 0;
    fact = 1;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;i++) scanf("%lf",&v[i]);
    for(i=2;i<=n;i++) fact*=i;
    for(i=1;i<=k;i++) a[i] = i;
    while(a[0]==0)
    {
        prod = 1;
        for(i=1;i<=k;i++) prod*=v[a[i]];
        prob +=(prod);
        prob +=(prod);
        vmax = n;
        i = k;
        while(a[i]==vmax)
        {
            i--;
            vmax--;
        }
        a[i]++;
        for(j=i+1;j<=k;j++) a[j] = a[j-1]+1;
    }
    printf("%.6lf\n",prob/fact);

    return 0;
}