Cod sursa(job #160007)

Utilizator TheoTheodor Iacomi Theo Data 14 martie 2008 17:29:13
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream.h>
#include<iomanip.h>
ifstream f("dezastru.in");
ofstream g("dezastru.out");
long facut[26],c[26],nr=1,p=1,n,k;
float v[26],med,pr;
void gen(long i, float pr){
 long j,e;
 for(j=0;j<n;j++)
  if(facut[j]==0){
     c[i]=j+1;e=0;
     if(c[i]>c[i-1]){
	facut[j]=1;
	pr=pr*v[j];
	e=1;
     }
     if(i<k) gen(i+1,pr);
	     else
	     if(e==1) med=pr*p/nr+med;
     if(e==1) pr=pr/v[j];
     facut[j]=0;}
}
int main()
{long i;
 f>>n;f>>k;for(i=0;i<n;i++) f>>v[i];
 for(i=1;i<=n-k;i++) p=i*p;
 for(i=n-k+1;i<=n;i++) nr=nr*i;
 for(i=1;i<=k;i++) p=i*p;
 gen(1,1);
 g<<setprecision(6)<<med;
 g<<'\n';
 f.close();g.close();return 0;}