Cod sursa(job #724353)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 26 martie 2012 14:19:43
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<cstdio>
float sum,a[30],medie,st[30];
int n,k,nr;
void aduna(int p)
{
    float P=1;
    for(int i=1;i<=p;i++) P*=a[i];
    medie+=P;
    nr++;
}
int conditie(int p)
{
    for(int i=1;i<p;i++) if(st[i]==st[p]||st[i]>st[p]) return 0;
    return 1;
}
void back(int p)
{
    for(int i=1;i<=n;i++)
    {
        st[p]=a[i];
        if(conditie(p))
        {
            if(p==k) aduna(p);
            else back(p+1);
        }
    }
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezaztru.out","w",stdout);
    scanf("%d %d",&n,&k);
    for(int i=1;i<=n;i++) scanf("%f",&a[i]);
    back(1);
    printf("%.6f",medie/nr);
}