Cod sursa(job #218075)

Utilizator zobicaMarin Marin zobica Data 31 octombrie 2008 18:38:24
Problema Dezastru Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb

    #include<stdio.h>

    int n,m,sol[26];
    long long nr = 0;
    double a[26], s, p;

   void back(int k, double p) {
        int fin = n - m + k;
        double p1;
        for(int i = sol[k-1] + 1; i <= fin; i++) {
             sol[k] = i;
             p1 = p * a[i];
             if(k == m) {
                 s += p1;
                 nr++;
            }
             else
                 back(k+1, p1);
        }
     }

     void citire() {
        freopen("dezastru.in","r",stdin);
        scanf("%d %d", &n,&m);
        for(int i = 1; i <= n; i++)
            scanf("%lf", &a[i]);
     }


     int main() {
        citire();
        back(1, 1);
        freopen("dezastru.out","w",stdout);
        printf("%lf", s / nr);
        return 0;
     }