Cod sursa(job #1886764)

Utilizator petardaaaaaAvasiloaie Sebastian petardaaaaa Data 21 februarie 2017 09:45:37
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 f("graf.in");
ofstream g("graf.out");
int n,k,nr,x[100];
float s,v[100];

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

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

void back(int i)
{
    while(i!=0)
    {
        while(i<=k && i!=0)
        {
            x[i]++;
            if(x[i]>n)
            {
                x[i]=0;
                i--;
            }
            else
                if(bun(i))
                    i++;
        }
        if(i>k)
        {
            suma();
            nr++;
            i=k;
        }
    }
}

int main()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
        f>>v[i];
    back(1);
    g<<setprecision(6)<<s/nr;
    return 0;
}