Cod sursa(job #2066629)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 15 noiembrie 2017 10:52:42
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

int n, k, e, t;
double val[30], sol, current = 1;

void bkt(int x)
{
    ++e;
    current *= val[x];
    if(e == t-1){
        for (int i = x+1; i <= n; ++i){
            current *= val[i];
            sol += current;
            ++k;
            current /= val[i];
        }
        return;
    }
    for (int i = x+1; n-i+1+e >= t; ++i)
        bkt(i);
    --e;
    current /= val[x];
}

int main()
{
    ifstream fin ("dezastru.in");
    ofstream fout ("dezastru.out");
    fin >> n >> t;
    for (int i = 1; i <= n; ++i)
        fin >> val[i];
    for (int i = 1; i <= n-t+1; ++i){
        e = 0;
        current = 1;
        bkt(i);
    }
    fout << fixed << setprecision(10) << sol/k << "\n";
    fin.close();
    fout.close();
    return 0;
}