Cod sursa(job #392736)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 8 februarie 2010 09:28:01
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>

int n,m,sol[30];
float v[30],s,t;

int continuare(int k)
{int i;
for(i=1;i<k;i++)
if(sol[i]>=sol[k])
return 0;
return 1;}

void afisare()
{int i;t++;float p=1;
for(i=1;i<=m;i++)
p*=v[sol[i]];
s+=p;
}

void bkt(int k)
{int i;
for(i=sol[k-1]+1;i<=n;i++)
{sol[k]=i;
//if(continuare(k))
if(k==m)
afisare();
else bkt(k+1);}
}

int main()
{freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&m);
int i;
for(i=1;i<=n;i++)
scanf("%f",&v[i]);
bkt(1);
printf("%f",s/t);
fclose(stdin);
fclose(stdout);
return 0;
}