Cod sursa(job #490701)

Utilizator andreea1coolBobu Andreea andreea1cool Data 7 octombrie 2010 16:13:12
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
double n,k,ve[27],ok=1,ss,nn,c[27],s=1;
int i,st[27];
double back(int p)
{

    int i;
    if(p==k+1)
    {
        for(i=1;i<=k;i++)
        s=s*ve[st[i]];
        ss+=s;
        s=1;
        nn++;

    }else
    {
        for(i=1;i<=n;i++)
        {
            if(c[i]==0&&i>st[p-1]&&st[1]<=n-k+1)
            {
            c[i]=1;
            st[p]=i;
            back(p+1);
            c[i]=0;
            }
        }

    }
    return 0;
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%lf%lf",&n,&k);
    for(i=1;i<=n;i++)scanf("%lf",&ve[i]);

    if(k==0)printf("100");
    else
    {
        back(1);
        ss=ss/nn;
        printf("%lf ",ss);
    }

    return 0;
}