Cod sursa(job #689395)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 24 februarie 2012 14:10:15
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <fstream>
using namespace std;
double p[27],S,P;
bool used[27];
int nr=0,n,sol[27],k;
void back(int poz)
{		
	int i;
	if(poz==k+1) 
	{
		for(i=1,P=1;i<=k;i++)
		P*=p[sol[i]];
		S+=P; nr++;
	}
	for(i=1;i<=n;i++)
	if(!used[i])
	{
		sol[poz]=i; used[i]=1;
		back(poz+1);
		used[i]=0;
	}
}
int main()
{
	ifstream fi("dezastru.in");
	ofstream fo("dezastru.out");
	fi>>n>>k;
	for(int i=1;i<=n;i++) fi>>p[i];
	S=0; nr=0;
	back(1);
	S=(double)S/nr;
	fo<<S<<"\n";
	return 0;
}