Cod sursa(job #1806426)

Utilizator andru47Stefanescu Andru andru47 Data 15 noiembrie 2016 12:23:57
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
int n,m,i,sol[1001],soL;
float suma = 0.0,v[1001];
void afis()
{
    float prod = 1.0;
    ++soL;
    for (i=1; i<=m; i++)
        prod *= 1.0*v[sol[i]];
    suma+=prod;
}
void backk(int k)
{
    int i;
    if (k>m)afis();
    else
    {
        for (i=sol[k-1]+1; i<=n; i++)
        {
            sol[k]=i;
            backk(k+1);
        }
    }
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d",&n,&m);
    for (i=1; i<=n; i++)
    {
        scanf("%f", &v[i]);
    }
    backk(1);
    suma/=soL;
    suma*=1000000;
    suma=int(suma);
    suma = suma/1000000;
    printf("%.6f", suma);
    return 0;
}