Cod sursa(job #627756)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 30 octombrie 2011 17:20:01
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>
using namespace std;

double v[30],S,sp=1;
int n,k,p[30],cont;

void back(int poz)
{
	if(poz>k)
	{
		S+=sp;
		cont++;
		return ;
	}

	for(int i=p[poz-1]+1;i<=n;i++)
	{
		p[poz]=i;
		sp*=v[i];
		back(poz+1);
		sp/=v[i];
	}
}

int main()
{

	freopen("dezastru.in","r", stdin);
	scanf("%d %d\n",&n,&k);
	for(int i=1;i<=n;i++) scanf("%lf ",&v[i]);
	back(1);
	freopen("dezastru.out","w", stdout);
	printf("%.6lf",double(S/cont));
	fclose(stdin); 
	fclose(stdout);
	return 0;
}