Cod sursa(job #187881)

Utilizator MciprianMMciprianM MciprianM Data 5 mai 2008 18:48:59
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>   
using namespace std;   
int N, K, L, x[30];  
double p[30];
long long nf=1;
double rez; 
ofstream g("combinari.out");   
void fact(int n){
  int i;
  for(i=3;i<=n;i++)
    nf*=i;
}
void calc(){   
  int i;   
  for(i=1;i<=K;i++)   
    rez+=x[i]*p[i]/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("combinari.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;   
}