Cod sursa(job #187889)

Utilizator MciprianMMciprianM MciprianM Data 5 mai 2008 18:59:50
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
using namespace std;
int N, K, L, x[30];  
double p[30];
long long nf=1;
double rez; 
ofstream g("dezastru.out");
void fact(int n){
  int i;
  for(i=3;i<=n;i++)
    nf*=i;
}
void calc(){
  int i;
  double r=1.0;
  for(i=1;i<=K;i++)
    r*=p[x[i]];
  rez+=r/nf;
}
void back(int i){
  int j;
  L=N-K+i;
  for(j=x[i-1]+1;j<=L;j++){
    x[i]=j;
    if(i==K)
      calc();
    else back(i+1);
  }
}
int main(){
  int i;
  ifstream f("dezastru.in");
  f>>N>>K;
  for(i=1;i<=N;i++)
    f>>p[i];
  fact(N);
  f.close();
  back(1);  
  g<<rez<<'\n'; 
  g.close();   
  return 0;   
}