Cod sursa(job #2690235)
Utilizator | Data | 23 decembrie 2020 14:24:16 | |
---|---|---|---|
Problema | Dezastru | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int v[26];
int n, m, l;
double a[26];
long double sum;
void afis(){
long double cost = a[v[1]];
for(int i = 2;i <= m;i++)
cost *= a[v[i]];
sum += (2 * cost);
l += 2;
}
void back(int k){
for(int i = v[k - 1] + 1;i <= n;i++){
v[k] = i;
if(k == m) afis();
else back(k + 1);
}
}
int main(){
f >> n >> m;
for(int i = 1;i <= n;i++)
f >> a[i];
back(1);
g << fixed << setprecision(6) << sum / l;
}