Cod sursa(job #1450930)

Utilizator hrazvanHarsan Razvan hrazvan Data 15 iunie 2015 11:09:55
Problema Dezastru Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#define MAXN 25
double p[MAXN];
double sum = 0.0;
int nr = 0;

inline void calc(int n, int k, double pr){
  if(k == 0){
    sum += pr;
    nr++;
  }
  else{
    int i;
    for(i = n; i >= k - 1; i--)
      calc(i - 1, k - 1, pr * p[i]);
  }
}

int main(){
  FILE *in = fopen("dezastru.in", "r");
  int n, k, i;
  fscanf(in, "%d%d", &n, &k);
  for(i = 0; i < n; i++)
    fscanf(in, "%lf", &p[i]);
  fclose(in);
  calc(n - 1, k, 1.0);
  FILE *out = fopen("dezastru.out", "w");
  fprintf(out, "%lf", sum / nr);
  fclose(out);
  return 0;
}