Cod sursa(job #2147665)

Utilizator antracodsAntracod antracods Data 28 februarie 2018 21:37:25
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

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

double v[27];
int sol[27],f[27];
double sum=0,c=0;
int n,k;
void read()
{
    in>>n>>k;
    for(int i=1;i<=n;i++)
    {
        in>>v[i];
    }
}

void solve(int x)
{

    if(x-1==k)
    {

        double tsum=1;
        for(int i=1;i<=k;i++)
        {
            tsum=tsum*v[sol[i]];
            cout<<v[sol[i]]<<" ";
        }
        cout<<'\n';
        sum+=tsum;
        c++;
    }
    else
    {

        for(int i=1;i<=n;i++)
        {

            if(f[i]==0)
            {

                f[i]=1;
                sol[x]=i;
                solve(x+1);
                f[i]=0;
            }
        }
    }
}

void print()
{
    out<<fixed<<setprecision(6)<<sum/c;
}

int main()
{
    read();
    solve(1);
    print();
}