Cod sursa(job #334754)

Utilizator mlazariLazari Mihai mlazari Data 27 iulie 2009 22:05:36
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>

#define NMAX 25

int n,k,i,j,nc,stop;
int c[NMAX];
float prob,pr,p[NMAX];

int main() {
  freopen("dezastru.in","r",stdin);
  freopen("dezastru.out","w",stdout);
  scanf("%d %d",&n,&k);
  for(i=0;i<n;i++) scanf("%f",p+i);
  for(i=0;i<k;i++) c[i]=i;
  do {
    ++nc;
    pr=1.0;
    for(j=0;j<k;j++) pr*=p[c[j]];
    prob+=pr;
    i=k-1;
    while((i>=0)&&(c[i]==i-k+n)) --i;
    if(i<0) stop=1;
    else {
      ++c[i];
      for(j=i+1;j<k;j++) c[j]=c[j-1]+1;
    }
  } while(!stop);
  prob/=nc;
  printf("%f",prob);
  return 0;
}