Pagini recente » Cod sursa (job #1900441) | Cod sursa (job #473840) | Cod sursa (job #442714) | Cod sursa (job #1761796) | Cod sursa (job #163374)
Cod sursa(job #163374)
#include <fstream.h>
#include <stdio.h>
int sol[30],n,kk;
long fact,fact2;
double v[30],st;
int cond(int a){
for (int i=0;i<a;i++)
if (sol[i]==sol[a]) return 0;
return 1;
}
double calc(int a){
double p=1;
for (int i=1;i<=a;i++)
p*=v[sol[i]-1];
return p;
}
int main(){
ifstream f("dezastru.in");
freopen("dezastru.out","w",stdout);
int k,p;
f>>n;
int i;
f>>kk;
for ( i=0;i<n;i++) f>>v[i];
k=1;sol[k]=1;
while (k>0){
if (sol[k]>n) sol[--k]++;
else if (k==kk) {st+=calc(k);sol[k]++;}
else if (k<n) {sol[++k]=sol[k-1]+1;}
}
fact=1; fact2=1;
for (i=2;i<=kk;i++) fact2*=i;
st=st*fact2;
for(i=2;i<=n;i++) fact*=i;
st=st/fact;
printf("%f",st);
f.close();
return 0;
}