Cod sursa(job #1368048)

Utilizator bajiBajan Vlad baji Data 2 martie 2015 13:31:21
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int i,  st[28],n,p,nr=0;
double v[28],sum;

bool valid(int k)
{
  for(int i=1;i<k;i++)
  if(st[i]==st[k])
  return false;

  return true;
}

void scrie()
{ double prod=1.00;
  for(int i=1;i<=p;i++)
  prod*=v[st[i]];

  sum+=prod;
  nr++;
}

void back(int k)
{
  for(int i=1;i<=n;i++)
    {
      st[k]=i;
       if(valid(k))

       if(k==n)
        scrie();
        else
        back(k+1);
    }
}

int main()
{
   fin>>n;
   fin>>p;
   for(i=1;i<=n;i++)
    fin>>v[i];

   back(1);
   fout<<sum/nr;
    return 0;
}