Cod sursa(job #798043)

Utilizator robertpoeRobert Poenaru robertpoe 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;
}