Cod sursa(job #1767056)
| Utilizator | Data | 28 septembrie 2016 18:14:59 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
float S[26][26], A[26], P, D = 1;
int N, K;
int main(){
int i, j;
f >> N >> K;
for (i = 1; i <= N; ++i) f >> A[i], S[i][0] = 1;
S[1][1] = A[1];
for (i = 2; i <= N; ++i){
for (j = 1; j <= i; ++j)
S[i][j] = S[i-1][j] + S[i-1][j-1]*A[i];
}
P = S[N][K];
for (i = 2; i <= K; ++i) D/=i;
for (i = N-K+1; i <= N; ++i) D*=i;
g << setprecision(6) << P/D << '\n';
}
