Pagini recente » Cod sursa (job #1685461) | Cod sursa (job #2016511) | Cod sursa (job #212969) | Cod sursa (job #2260849) | Cod sursa (job #481553)
Cod sursa(job #481553)
#include <stdio.h>
typedef int tipus1;
typedef float tipus2;
tipus1 n,k,nfact,v[26];
tipus2 a[26],ossz=0;
tipus1 fact(tipus1 p){
tipus1 temp=1,i;
for(i=2;i<=p;i++){temp=temp*i;}
return temp;
}
void osszead(){
tipus2 temp=1;
tipus1 i;
for(i=1;i<=k;i++){temp=temp*a[v[i]];}
ossz+=temp/nfact;
}
bool jo(tipus1 p){
tipus1 i;
for(i=1;i<=p-1;i++){if(v[i]==v[p]){return false;}}
return true;
}
void perm(tipus1 p){
tipus1 i;
for(i=1;i<=n;i++){
v[p]=i;
if(jo(p)){
if(p==n){osszead();}
else{perm(p+1);}
}}
}
int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
tipus1 i;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++){scanf("%f",&a[i]);}
nfact=fact(n);
perm(1);
printf("%f",ossz);
return 0;}