Cod sursa(job #555736)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 15 martie 2011 18:48:16
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

using namespace std;

ifstream in("dezastru.in");
ofstream out("dezastru.out");

int n,k,rez[1<<10];
long long int factmod=1;
float p[1<<10],st=0;

int factm(){
	int i;
	for(i=n-k+1;i<=n;i++){
		factmod=factmod*i;
	}
	for(i=1;i<=k;i++){
		factmod=factmod/i;
	}
}

void bkt(int x){
	int i,j;
	float pc=1.0;
	if(x==k+1){
		for(i=1;i<=k;i++){
			pc=pc*p[rez[i]];
		}
		st+=pc;
		return;
	}
	for(i=rez[x-1]+1;i<=n;i++){
		rez[x]=i;
		bkt(x+1);
	}
}

void citire(){
	int i;
	for(i=1;i<=n;i++){
		in>>p[i];
	}
}
	

void prelucrare(){
	bkt(1);
}

int main(){
	in>>n>>k;
	citire();
	prelucrare();
	factm();
	out<<st/factmod;
	return 0;
}