Cod sursa(job #1161411)

Utilizator DenisacheDenis Ehorovici Denisache Data 31 martie 2014 11:15:14
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
using namespace std;
FILE*f=fopen("dezastru.in","r");
FILE*g=fopen("dezastru.out","w");
int n,i,x,nr,sol[26];
long long lung;
float S,v[26];
float prod(int n)
{
    float P=v[sol[1]];
    for (register int i=2;i<=x;i++)
        P*=v[sol[i]];
    return P;
}
void bkt(int k)
{
    if (k==x+1)
    {
        S+=prod(k);
        lung++;
        return;
    }
    for (register int i=sol[k-1]+1;i<=n;i++)
    {
        sol[k]=i;
        bkt(k+1);
    }
}
int main()
{
    fscanf(f,"%d %d",&n,&x);
    for (i=1;i<=n;i++)
        fscanf(f,"%f",&v[i]);
    bkt(1);
    fprintf(g,"%f",S/lung);
    return 0;
}