Cod sursa(job #218080)

Utilizator zobicaMarin Marin zobica Data 31 octombrie 2008 18:50:07
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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 ant) {
        int fin = n - m + k;
        double p1;
        for(int i = ant + 1; i <= fin; ++i) {
             p1 = p * a[i];
             if(k == m) {
                 s += p1;
                 ++nr;
            }
             else
                 back(k+1, p1, i);
        }
     }

     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, 0);
        freopen("dezastru.out","w",stdout);
        printf("%lf", s / nr);
        return 0;
     }