Cod sursa(job #642969)

Utilizator noobakafloFlorin eu noobakaflo Data 2 decembrie 2011 17:35:58
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<iostream>
#include<fstream>
using namespace std;
fstream f("dezastru.in",ios::in);
fstream g("dezastru.out",ios::out);

int n,m,stiva[100];
float probabilitati[100],suma=0;

void back(int k)
{
	int i;
	
	if(k==m)
	{
		float produs=1;
		
		for(i=0; i<m; i++)
			produs=produs*probabilitati[stiva[i]];
		suma=suma+(produs*2);
	}
	else
	{
		if(k>0)
			stiva[k]=stiva[k-1];
		else
			stiva[k]=-1;
		while(stiva[k]<n-m+k)
		{
			stiva[k]++;
			back(k+1);
		}
	}
}

float factorial(int n)
{
	int i;
	float fact=1;
	for(i=1; i<=n; i++)
		fact=fact*i;
	
	return fact;
}

int main()
{
	int i;
	
	f>>n>>m;
	for(i=0; i<n; i++)
		f>>probabilitati[i];
	back(0);
	g<<suma/factorial(n);
	
	f.close(); g.close();
	return 0;
	
}