Cod sursa(job #2240183)

Utilizator alexilasiAlex Ilasi alexilasi Data 12 septembrie 2018 18:52:30
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

int n,k,i,fct,prez[30];
double pr,ans,a[30];

void bkt(int poz)
{
    if(poz==k+1)
    {
        ans+=pr*fct;
        return;
    }
    for(int i=1; i<=n; i++)
        if(prez[i]==0)
        {
            prez[i]=1;
            if(poz==1)pr=a[i];
            else pr*=a[i];
            bkt(poz+1);
            prez[i]=0;
            if(poz==1)pr=0;
            else pr/=a[i];
        }
}

int main()
{
    fin>>n>>k;
    for(i=1; i<=n; i++)
        fin>>a[i];
    for(fct=1,i=2;i<=n-k;i++)
        fct*=i;
    bkt(1);
    for(i=1; i<=n; i++)
        ans/=i;
    fout<<ans;
    return 0;
}