Cod sursa(job #2507049)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 9 decembrie 2019 15:41:20
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
int N, K;
float p[30];
float P = 1, rez = 0;
bool viz[30];
int ct;
void Back(int top) {
    if (top == K + 1) {
        rez += P;
        ct++;
       // cout << P << "\n";
    }
    else
        for (int i = 1; i <= N; i++) {
            if (viz[i] == 0) {
                viz[i] = true;
                P *= p[i];
                Back(top + 1);
                P /= p[i];
                viz[i] = false;
            }
        }
}

int main() {
    ifstream fin("dezastru.in");
    ofstream fout("dezastru.out");
    fin >> N >> K;
    for (int i = 1; i <= N; i++) {
        fin >> p[i];
    }
    Back(1);
    fout << fixed << setprecision(6) << rez/(float)ct;
}