Cod sursa(job #37756)
Utilizator | Alexandru Dumitru Paunoiu DranaXum | Data | 25 martie 2007 12:24:10 |
---|---|---|---|
Problema | Shop | Scor | 0 |
Compilator | cpp | Status | done |
Runda | preONI 2007, Runda 4, Clasa a 9-a si gimnaziu | Marime | 0.63 kb |
#include<stdio.h>
int c[26];
int main()
{
float m=0.0,p,a[26];
int i,n,k,x,ok=1,f=0,t;
FILE *fin,*fout;
fin=fopen("dezastru.in","r");
fout=fopen("dezastru.out","w");
fscanf(fin,"%d%d",&n,&k);
for(i=1;i<=n;i++)
{fscanf(fin,"%f",&a[i]);}
while(ok)
{
t=1;
p=1.0;
x=ok=0;
for(i=n;i>=1;i--)
{
t+=c[i];
c[i]=t%2;
t/=2;
if(!c[i]) ok=1;
if(c[i]) {x++; p=p*a[i]; if(x>k && !t) break;}
}
if(x==k) {m+=p; f++;}
}
fprintf(fout,"%0.6f",(float)m/f);
fclose(fin);
fclose(fout);
return 0;
}