Cod sursa(job #1123925)

Utilizator DanielLeonLeon Daniel DanielLeon Data 26 februarie 2014 10:41:34
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,x[100],z,fact=1;
long double y[100];
long double suma=0;
void bkt(int k)
{

    if(k==z)
    {
        long double prod=1;
        for(int i=0;i<z;i++)
        {
            prod*=y[x[i]];
        }
        suma+=prod/fact;
        //fout<<prod<<" "<<suma<<'\n';
    }
    else
    {

        for(int i=1;i<=n;i++)
        {
            int ok=0;
            for(int j=0;j<k;j++)
                if(x[j]==i)ok=1;
            if(!ok)
            {
                x[k]=i;
                bkt(k+1);
            }
        }
    }
}
int main()
{

    fin>>n>>z;
    for(int i=1;i<=n;i++)
        fin>>y[i];
    for(int i=1;i<=n;i++)
        fact=fact*i;
    bkt(0);
    fout<<suma;
}