Cod sursa(job #3303299)

Utilizator cutuslabutuNegrila Florin cutuslabutu Data 15 iulie 2025 10:20:18
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
 
using namespace std;
const int Max = 25;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int N, M, K;
double ans;
double  v[Max];
int s[Max];
bool val(int n)
{
  for(int i = 1; i < n; ++i)
   if(s[i] == s[n])
   return 0;
  return 1;
}
void backer(int n)  
{
    for(int i = 1; i <= N; ++i)
    {
      s[n] = i;
      if(val(n))
      {
        if(n == K)
         {
          double a = 1;
           for(int i = 1; i <= K; ++i)
           {
             a *= v[s[i]];
           }
           cout << a << '\n';
           ans += a/N * 2;
         }
         else
         backer(n+1);
      }
    }
}
 
int main()
{
   f >> N >> K;
   for(int i = 1; i <= N; ++i)
   {
    f >> v[i];
   }
   backer(1);
   g << setprecision(6) << fixed << ans;  
  
}