Pagini recente » Istoria paginii runda/cvuri/clasament | Istoria paginii runda/preoji_2010/clasament | Istoria paginii runda/albu | Istoria paginii runda/rommmmm/clasament | Cod sursa (job #163406)
Cod sursa(job #163406)
#include <fstream.h>
#include <stdio.h>
int sol[30],n,kk;
long nr;
double 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]++;nr++;}
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;*/
st/=nr;
printf("%lf",st);
f.close();
return 0;
}