Cod sursa(job #134065)
Utilizator | Data | 10 februarie 2008 16:05:35 | |
---|---|---|---|
Problema | Dezastru | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream.h>
#include <stdio.h>
ifstream fin ("dezastru.in");
double a[48];
int n,K;
int nr=0;
double P=0,S=0,R;
void citire()
{
fin>>n>>K;
for (int i=0;i<n;i++)
fin>>a[i];
fin.close();
}
void back (int k,int poz,double S)
{
if (k==K)
{
P+=S;
nr++;
return ;
}
for (int i=poz+1;i<n-K+k+1;i++)
back (k+1,i,S*a[i]);
}
int main ()
{
citire();
back(0,-1,1);
P/=nr;
freopen ("dezastru.out","w",stdout);
printf("%.6lf",P);
fclose (stdout);
return 0;
}