Cod sursa(job #718040)
| Utilizator | Data | 20 martie 2012 14:16:32 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n,m,poz[30],nr;
double v[30],sum=1,sol;
inline void back(int k,double sum)
{
if(k>m)
{
sol=sol+sum;
++nr;
}
else
for(int i=poz[k-1]+1;i<=n-m+k;++i)
{
poz[k]=i;
back(k+1,sum*v[i]);
}
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;++i)
{
in>>v[i];
}
back(1,1.0);
out<<(1.0*sol)/(1.0*nr);
out.close();
return 0;
}