Cod sursa(job #793612)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 3 octombrie 2012 17:07:09
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<algorithm>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
//ifstream fin("f.in");
//ofstream fout("f.out");

long long x, j, n, i, k, nr;
float s, p[26], a[30][30];

long long combinari(long long n,long long k)
{
    long long x=1, i;
    if(n > 2 * k) return combinari(n, n-k);

    for(i = k + 1; i <= n; ++i) x *= i;
    for(i = 2; i <= n - k; ++i) x /= i;

return x;

}

int main()
{
    fin >> n >> k;
for(i = 1; i <= n; ++i) fin >> p[i];

a[0][0] = 1;

for(i = 1; i <= n; ++i)
{
    a[i][0] = 1;
    for(j = 1; j <= i; ++j)	a[i][j] = a[i - 1][j] + a[i - 1][j - 1] * p[i];
}

x = combinari(n, k);
fout.precision(6);
fout << a[n][k] / x;
return 0;
}