Cod sursa(job #689750)
| Utilizator | Data | 24 februarie 2012 19:50:11 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#include <iomanip>
#define N 30
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,i,j,c=1,k;
double D[N][N],v[N];
int main() {
f >> n >> k;
for (i=1;i<=n;D[i][0]=1,i++) f >> v[i];
D[0][0]=1;
for (i=1;i<=n;i++)
for (j=1;j<=min(i,k);j++)
D[i][j]=D[i-1][j]+D[i-1][j-1]*v[i];
for (i=k+1;i<=n;i++) c*=i;
for (i=1;i<=n-k;i++) c/=i;
D[n][k]/=c;
g << fixed;
g << setprecision(7) << D[n][k] << '\n';
f.close();g.close();
return 0;
}
