Mai intai trebuie sa te autentifici.
Cod sursa(job #39641)
| Utilizator | Data | 26 martie 2007 21:33:25 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream.h>
#include <stdio.h>
ifstream fin("dezastru.in");
float v[33],s;
int n,k,i,j,g,st[33];
int min(int a,int b){
if (a<b)
return a;
else
return b;
}
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<=min(n,st[g]+k);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;
}
