Cod sursa(job #2692843)

Utilizator Botzki17Botocan Cristian-Alexandru Botzki17 Data 3 ianuarie 2021 22:42:44
Problema Dezastru Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
const int NMAX = 25;
double dp[NMAX+5];
double v[NMAX+5];
double sol;
bitset<NMAX+5>viz;
int k, cnt, n;
void backt(int p)
{
  if( p == k + 1)
  {
      sol = sol + dp[p-1];
      cnt++;
      return;
  }
  for(int i =1; i <=n;i++)
  {
     if(viz[i] == 0)
     {
        viz[i] = 1;
        dp[p] = dp[p-1] * v[i];
        backt(p + 1);
        viz[i] = 0;
     }
  }
}


int main()
{
    int i;
    fin>>n>>k;
    for(int i =1; i<=n;i++)
        fin>>v[i];
    dp[0] = 1.0;
    backt(1);
    fout<<fixed<<showpoint;
    fout<<setprecision(17);
    sol = sol/ (1.0 * cnt);
    fout<<sol;


    return 0;
}