Cod sursa(job #162136)

Utilizator anamaria1Ozorchevici Ana Maria anamaria1 Data 19 martie 2008 15:29:09
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream.h>
#include<iomanip.h>
long double v[26],comb,sum;
int s[26],n,k,q;
void init()
{s[q]=s[q-1];}
int succesor()
{if((s[q]<n)&&(q<=k))
  {s[q]++;return 1;}
  else return 0;
}
void tipar()
{int i;
long double p=1;
for(i=1;i<=k;i++) p=p*v[s[i]];
sum=sum+p;
}
int main()
{ifstream f("dezastru.in");
ofstream g("dezastru.out");
int i,as;
f>>n>>k;
for(i=1;i<=n;i++) f>>v[i];
f.close();
/*perm1=1;
for(i=2;i<=k;i++) perm1=perm1*i;
perm2=1;dif=n-k;
for(i=2;i<=dif;i++) perm2=perm2*i;  */
q=1;
while(q)
 {as=succesor();
  if(as)
   {if(q==k) {tipar();comb++;}
     else {q++;init();}
   }
   else q--;
 }
sum=sum/comb;
g<<setprecision(6)<<sum<<'\n';
g.close();
return 0;
}