Cod sursa(job #39652)
Utilizator | Data | 26 martie 2007 21:36:35 | |
---|---|---|---|
Problema | Dezastru | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream.h>
#include <stdio.h>
ifstream fin("dezastru.in");
float v[33],s;
int n,k,i,j,g,st[33];
void back(int g){
int i;
float t=1;
if (g==k)
{
for(i=1;i<=k;i++)
t*=v[st[i]]*i;
s+=t;
}
else
{
for(i=st[g]+1;i<=k+g;i++)
{
st[g+1]=i;
back(g+1);
}
}
}
int main(){
freopen("dezastru.out","w",stdout);
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
back(0);
for (i=n-k+1;i<=n;i++)
s/=i;
printf("%.6lf\n",s);
fin.close();
return 0;
}