Cod sursa(job #639635)

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

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

void back(int k)
{
    if(k == m+1)
      {
       int j;
       p = 1;
       for(j=1; j<=m; j++)
          p *= a[st[j]];
       s += p;
       nr++;
      }
    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;
}