Cod sursa(job #2810614)

Utilizator P1zd0SuntBetoAlbert Beto P1zd0SuntBeto Data 29 noiembrie 2021 20:20:40
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

int N, K, countt;
float a[25], sol[25],pozs[25], suma_max;
void adauga_suma()
{
    float prob =1;
    for (int i = 0; i < K; i++)
        prob *= sol[i];
    suma_max += prob;
    countt++;
}
int verifica()
{
    for (int i = 0; i < N; i++)
        if (pozs[i] > 1) return 0;
    return 1;
}
void bkt(int poz)
{
    if (poz == K) adauga_suma();
    else
    for (int i = 0; i < N; i++) {
        sol[poz] = a[i];
        pozs[i]++;
        if (verifica()) bkt(poz + 1);
        pozs[i]--;
    }
}
int main()
{
    fin >> N >> K;
    for (int i = 0; i < N; i++)
        fin >> a[i];
    bkt(0);
    fout << suma_max / countt;
    fin.close();
    fout.close();
    return 0;
}