Cod sursa(job #213269)

Utilizator FoaiaFoaia de Hartie Foaia Data 9 octombrie 2008 00:23:43
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

long t, x, s;
long double nr, r, sol, p, u, d;
long long a[60][60];

int main()
{
	scanf("%ld %ld %ld", &t, &x, &s);
	scanf("%llf %llf %llf", &p, &u, &d);
	a[0][0] = 1;
	for (int i = 1; i < 51; i++)
	{
		a[i][0] = 1;
		for (int j = 1; j < 51; j++)
			a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
	}
	sol = (long double) s;
	r = (long double) 1;
	for (int i = 0; i < t; i++)
	{
		r *= (long double) p;
		sol *= (long double) u;
	}
	for (int i = 0; i <= t; i++)
	{
		if (sol > x) 
			nr = (long double) nr + a[t][i] * r * (sol - x);
		r = r / p * (1 - p);
		sol = sol / u * d;
	}
	printf("%.2llf", nr);
	return 0;
}