Cod sursa(job #311147)
| Utilizator | Data | 2 mai 2009 19:47:52 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <stdio.h>
FILE *f=fopen("dezastru.in","r");
FILE *g=fopen("dezastru.out","w");
int n,k,uz[27],nr;
float p,s,a[27];
void afisare()
{
p=1;
int i;
for(i=1;i<=n;i++)
if(uz[i])
p*=a[i];
nr++;
s+=p;
}
void comb(int j,int l)
{
if(l==k+1)
afisare();
else
{
for(int i=j;i<=n;i++)
{
uz[i]=1;
comb(i+1,l+1);
uz[i]=0;
}
}
}
int main()
{
fscanf(f,"%d %d",&n,&k);
for(int i=1;i<=n;i++)
fscanf(f,"%f",&a[i]);
comb(1,1);
s/=nr;
fprintf(g,"%f",s);
}
