Cod sursa(job #1210195)

Utilizator IulianBoboUAIC Boboc Iulian IulianBobo Data 19 iulie 2014 14:02:50
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
using namespace std;
double sum = 0.0;
int n, k, i,j,sol[26],total;
double a[27][27];
double v[26];

int combinari(int n, int k)
{
	int prod=1,i;
	if (n - k > k)
	{
		for (i = n - k + 1; i <= n; ++i)
		{
			prod *= i;
		}
		for (i = 2; i <= k; ++i)
		{
			prod /= i;
		}
	}
	else
	{
		for (i = k + 1; i <= n; ++i)
		{
			prod *= i;
		}
		for (i = 2; i <= n-k; ++i)
		{
			prod /= i;
		}
	}
	return prod;
}
int main()
{
	FILE *fin, *g;
	fin=fopen("dezastru.in", "r");
	g=fopen("dezastru.out", "w");
	fscanf(fin, "%d %d", &n, &k);
	for (i = 1; i <= n; ++i)
	{
		fscanf(fin,"%lf",&v[i]);
	}
	total = combinari(n, k);
	sum=sum/total;
	for(i=0;i<n;++i)
		for(j=i+1;j<=n;++j) a[i][j]=0;
	for(i=0;i<=n;++i) a[i][0]=1;
	for(i=1;i<=n;++i)
		for(j=1;j<=i;++j)
		{
			a[i][j]=a[i-1][j]+a[i-1][j-1]*v[i];
		}
	fprintf(g,"%.6lf",a[n][k]/total);
	fclose(fin);
	fclose(g);
	return 0;
}