Cod sursa(job #1350387)

Utilizator vladttturcuman vlad vladtt Data 20 februarie 2015 19:37:39
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

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


int n,k,i,j;

double a[30],s=0,prod=1.0;


int backtrack(int er,int qw)
{
    double cprod=0.000000000;

    if(n-er+1<qw)
    {
        return 0;
    }
    if(qw==0)
    {
        s+=prod;

        return 0;
    }
    for(int i=er;i<=n-qw+1;i++)
    {
        cprod=prod;
        prod=prod*a[i];
        backtrack(i+1,qw-1);
        prod=cprod;
    }
    return 0;
}

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

    backtrack(1,k);

    for(i=1;i<=n-k;i++)
        s=s*i;
    for(i=k+1;i<=n;i++)
        s/=i;

    fout.precision(6);

    fout<<fixed<<s;

    return 0;
}