Cod sursa(job #731001)
| Utilizator | Data | 7 aprilie 2012 12:08:29 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream>
#include<cstdio>
using namespace std;
int n,k1,x[26];
double p[26],prob=1,probfinal;
long long nrc;
ofstream out("dezastru.out");
inline void back(int k,double prob)
{
if(k>k1)
{
++nrc;
probfinal+=prob;
}
else
for(int i=x[k-1]+1;i<=n-k1+k;i++)
{
x[k]=i;
back(k+1,prob*p[i]);
}
}
int main()
{
ifstream in("dezastru.in");
in>>n>>k1;
for(int i=1;i<=n;i++)
in>>p[i];
back(1,1.0);
out<<probfinal/nrc;
return 0;
}
