Cod sursa(job #2014942)
| Utilizator | Data | 24 august 2017 18:00:54 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
double a[40], avg;
int n, k, i, nr;
inline void bkt(int last, int x, double s) {
if (x == k) {
nr++;
avg += s;
return;
}
int i, z = n-(k-x)+1;
for (i = last+1; i <= z; i++)
bkt(i, x+1, s*a[i]);
}
int main() {
in >> n >> k;
for (i = 1; i <= n; i++)
in >> a[i];
bkt(0, 0, 1);
out << fixed << setprecision(6) << (avg/nr);
}
