Mai intai trebuie sa te autentifici.
Cod sursa(job #798043)
Utilizator | Data | 15 octombrie 2012 16:38:39 | |
---|---|---|---|
Problema | Dezastru | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
#define rational 1.0
#define dim 0x3f3f3f
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,m,poz[dim],nr;
double v[dim],sum=1,sol;
inline void recurenta(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;
recurenta(k+1,sum*v[i]);
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i)
f>>v[i];
recurenta(1,rational);
g<<(1.0*sol)/(1.0*nr);
return 0;
}