Pagini recente » Cod sursa (job #2874814) | Cod sursa (job #1783337) | Cod sursa (job #377002) | Cod sursa (job #1322645) | Cod sursa (job #54319)
Cod sursa(job #54319)
#include<stdio.h>
int st[30],n,k,perm=0;
float v[26],s=0.0;
FILE*g=fopen("dezastru.out","w");
void initializari()
{
int i;
FILE*f=fopen("dezastru.in","r");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++){fscanf(f,"%f",&v[i]); st[i]=0; }
}
int valid(int p)
{
if(p>1&&st[p]<=st[p-1]) return 0;
else return 1;
}
void bkt(int p)
{
int pval,i;
float pr=1.0;
for(pval=1;pval<=n;pval++)
{
st[p]=pval;
if (valid(p))
{
if (p==k)
{
perm++;
pr=1.0;
for(i=1;i<=p;i++) pr*=v[st[i]];
s+=pr;}
else bkt(p+1);
}
}
}
int main()
{
initializari();
bkt(1);
fprintf(g,"%.6f",s/perm);
}