Cod sursa(job #1135395)
| Utilizator | Data | 7 martie 2014 19:52:02 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <iostream>
#include <fstream>
using namespace std;
int N, K;
double total = 0;
double cnt = 0;
double p[30];
void dfs(double x, int lvl, int n)
{
if (lvl == K) { total += x; cnt++; return; }
//if (N-n < K-lvl) return;
for (int i = n; i < N-K+lvl+1; i++)
{
dfs(x*p[i], lvl+1, i+1);
}
}
int main()
{
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
f >> N >> K;
for (int i = 0; i < N; i++)
f >> p[i];
dfs(1, 0, 0);
g << (total / cnt) << endl;
return 0;
}
