Cod sursa(job #1311619)

Utilizator Andrei11Andrei Andrei11 Data 8 ianuarie 2015 13:59:39
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
using namespace std;
int n,k,st[25],i,nr; float s,a[25];
bool valid(int p)
{
    for(int i=1;i<p;i++)
    {
        if(st[i]==st[i+1])
            return 0;
    }
    return 1;
}
void back(int p)
{
    for(int pval=1;pval<=n;pval++)
    {
        st[p]=pval;
        if(valid(p))
        {
            if(p==n)
            {
                int j=1; float b=1;
                while(j<=k)
                {
                    b=b*a[st[j]];
                    j++;
                }
                s=s+b;
                nr++;

            }
            else back(p+1);
        }
    }
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%f " ,&a[i]);
    }

    back(1);
    printf("%f",s/nr);

    return 0;
}