Cod sursa(job #639633)

Utilizator yippeeErja Eduard yippee Data 23 noiembrie 2011 18:09:03
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>

int n,m,st[26],nr;
float a[26],p,s;

void solve()
{
    int i;
    p = 1;
    for(i=1; i<=m; i++)
          p *= a[st[i]];
    s += p;
    nr++;
}

void back(int k)
{
    if(k == m+1)
      solve();
    else
     for(int i=st[k-1]+1; i<=n-m+k; i++)
     {
         st[k] = i;
         back(k+1);
     }
}

int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d", &n,&m);

    for(int i=1; i<=n; i++)
        scanf("%f", &a[i]);

    st[0] = 0;
    back(1);
    printf("%f", s/nr);

    return 0;
}