Cod sursa(job #1886887)

Utilizator vladcorjucVlad Corjuc vladcorjuc Data 21 februarie 2017 11:06:28
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,k,o,x[100];
double h[1000000],va[26];
void pre()
{
    int i;
    double p=1;
    for(i=1;i<=k;i++)
    p=p*va[x[i]];
    o++;
    h[o]=p;


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

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

            }
            else
            if(bun(i))
            i++;

        }
        if(i>k)
        {
            pre();
            i=k;

        }

    }

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