Cod sursa(job #783088)

Utilizator MtkMarianHagrSnaf MtkMarian Data 2 septembrie 2012 09:37:16
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
using namespace std;
long long Combinations(unsigned int n, unsigned int k)
{
     if (k > n)
         return 0;
     long long r = 1;
     for (unsigned int d = 1; d <= k; ++d)
     {
         r *= n--;
         r /= d;
     }
     return r;
}

int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	int n,k;
	float p[30],a[32][32]={0},rez1;
	long long rez=1;

	scanf("%d %d",&n,&k);
	for(int i=1;i<=n;++i)
	{
		scanf("%f",&p[i]);
	}
	for(int i=1;i<=n;++i)
	{
		printf("%f ",p[i]);
	}
	for(int i=0;i<n;i++)
 a[i][0]=a[i][i]=1;
	
	for(int i=1;i<=n;++i)
		for(int j=1;j<=i;++j)
		{
			a[i][j]=(a[i-1][j]+a[i-1][j-1]*p[i]);

		}
		rez=Combinations(n,k);
		printf("%lld",rez);
		rez1=(float)a[n][k]/rez;
for(int i=1;i<=n;++i)
{
	printf("\n");
		for(int j=1;j<=i;++j)
		{
			printf("%f ",a[i][j]);

		}
}
printf("\n%.6f\n",rez1);
	return 0;
}