Cod sursa(job #217924)

Utilizator yippeeErja Eduard yippee Data 30 octombrie 2008 21:14:42
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
int n,m,sol[20],nr;
float z,a[50],prob,p,s;

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

}

void back(int k)
{
    if(k==m+1)

        afis();

    else

     for(int i=sol[k-1]+1;i<=n;i++)
     {
         sol[k]=i;
         back(k+1);
     }
}
int main()
{
    float ma;
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d", &n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%f", &z);
        a[i]=z;
    }
    sol[0]=0;
    back(1);
    ma=s/nr;
    printf("%f", ma);
    return 0;
}