Cod sursa(job #1744482)

Utilizator leraValeria lera Data 19 august 2016 21:17:24
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 ifstream fin("dezastru.in");
 ofstream fout("dezastru.out");
 //fac combinari
int t,n,v[26];
long long ns=0;
long double sum=0,a[26];
long long pfact=1;
 int solutie(int k)
 {
     if(k==t)
        return 1;
     return 0;
 }
 void Bk(int k,float p)
 {
     for(int i=v[k-1]+1;i<=n-t+k;i++)
     {
         v[k]=i;
         if(solutie(k))
                 {
                     sum=sum+pfact*p*a[v[k]];
                     ns++;
                 }
         else
            Bk(k+1,p*a[v[k]]);
     }
 }
int main()
{
   fin>>n>>t;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    for(int i=1;i<=t;i++)
        pfact*=i;
    v[0]=0;
    Bk(1,1);
    pfact=pfact*ns;
   fout<<(float)sum/pfact;
    return 0;
}