Cod sursa(job #2466272)

Utilizator RazvanucuPopan Razvan Calin Razvanucu Data 1 octombrie 2019 20:17:21
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,l,n_factorial=1,v[25];
double probabilitate_totala,probabilitate,atacuri[25];
void calculare_probabilitate()
{
    probabilitate=1;

    for(int i=1;i<=l;i++)
        probabilitate*=atacuri[i];

    probabilitate_totala+=probabilitate;
}
bool OK(int k)
{
   for(int i=1;i<k;i++)
        if(v[k]==v[i]) return 0;
   return 1;
}
void Bkt(int k)
{
   for(int i=1;i<=n;i++)
   {
      v[k]=i;
      if(OK(k))
      {
         if(k==l)
            calculare_probabilitate();
         else Bkt(k+1);
      }
   }
}
int main()
{
    f>>n>>l;
    for(int i=1;i<=n;i++)
      {
        f>>atacuri[i];
        n_factorial*=i;
      }

    Bkt(1);
    g<<setprecision(6)<<probabilitate/n_factorial;




    return 0;
}