Cod sursa(job #2015828)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 27 august 2017 18:17:52
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

using namespace std;

int n,p,s[25],facto;
double a[25],sumTo=0;

void Calcul()
{
    float sumLo = 1;
    for(int i=1;i<=p;i++)
    {
        sumLo = a[s[i]] * sumLo;
    }
    sumTo += sumLo/6;
}

bool Valid(int k)
{
    for(int i=1;i<=k-1;i++)
    {
        if(s[k] == s[i])
            return false;
    }
    return true;
}

void Back(int k)
{
    for(int i=1;i<=n;i++)
    {
        s[k] = i;
        if(Valid(k))
        {
            if(k == n)
            {
                Calcul();
            }
            else
                Back(k+1);
        }
    }
}

int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%i %i",&n,&p);
    for(int i=1;i<=n;i++)
    {
        scanf("%lf",&a[i]);
        facto *= i;
    }
    Back(1);
    printf("%lf",sumTo);
    return 0;
}