Cod sursa(job #1886769)

Utilizator Just2Dr3amFlavius Atanasoae Just2Dr3am Data 21 februarie 2017 09:48:05
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

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

int x[100],n,k,nr;
float s,a[100];

int bun(int i)
{
    int j;
    for(j=1;j<i;j++)
        if(x[i]==x[j])
            return 0;
    return 1;
}

void sum()
{
    float p=1;
    for(int i=1;i<=k;i++)
        p*=a[x[i]];
    s+=p;
}

void back(int i)
{
    while(i!=0)
    {
        while(i<=k && i!=0)
        {
            x[i]++;
            if(x[i]>k)
            {
                x[i]=0;
                i--;
            }
            else if(bun(i))
                i++;
        }
        if(i>k)
        {
            sum();
            i=n;
            nr++;
        }
    }
}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    back(1);
    fout<<setprecision(6)<<s/nr;
    return 0;
}