Cod sursa(job #653899)
| Utilizator | Data | 29 decembrie 2011 11:20:00 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
#include<fstream>
using namespace std;
FILE *f = fopen("dezastru.in","r");
FILE *g = fopen("dezastru.out","w");
#define MaxN 29
int N,K,nr,V[MaxN];
double S,A[MaxN];
inline void back(int k,int x,double s)
{
for(int i=x+1;i<=N;i++)
if(k == K)
S += s*A[i],++ nr;
else
back(k+1,i,s*A[i]);
}
int main()
{
fscanf(f,"%d%d",&N,&K);
for(int i=1;i<=N;i++)
fscanf(f,"%lf",&A[i]);
back(1,0,1);
fprintf(g,"%.6lf\n",S/nr);
fclose(f);
fclose(g);
return 0;
}