Cod sursa(job #1076174)
| Utilizator | Data | 9 ianuarie 2014 22:33:33 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <cstdio>
using namespace std;
int main() {
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
int i;
float v[27];
for (i = 0; i < n; ++i) {
scanf("%f", &v[i]);
}
int b;
float s, I = 0, S = 0;
for (b = (1<<k)-1; b <= (1<<n); b++) {
if (__builtin_popcount(b) == k) {
s = 1;
for (i = 0; i < n; ++i) {
if (b & (1<<i)) {
s *= (1.0)*v[i];
}
}
S += s;
++I;
}
}
printf("%.*f", 6, S/I);
return 0;
}
