Pagini recente » Cod sursa (job #2303042) | Cod sursa (job #369168) | Cod sursa (job #237863) | Cod sursa (job #2732269) | Cod sursa (job #415377)
Cod sursa(job #415377)
#include<stdio.h>
float v[26];
int x[26],car[27],ind,as,n,k,sol;
void read()
{
FILE*f=fopen("dezastru.in","r");
fscanf(f,"%d%d",&n,&k);
int i=0;
for(;i<n;++i)
fscanf(f,"%f",&v[i]);
fclose(f);
}
void succesor()
{
int init=x[ind];
as=0;
if(x[ind]<n)
do
{
++x[ind];
if(!car[x[ind]])
{as=1;car[init]=0;car[x[ind]]=1;}
}while(x[ind]<n&&car[x[ind]]&&!as);
if(!as)x[ind]=init;
}
float suma()
{
float s=1.0f;
int i;
for(i=0;i<k;++i)
s*=v[x[i]-1];
return s;
}
int main()
{
read();
float var=0.0;
while(ind>=0)
{
succesor();
if(as)
{
if(ind==k-1)
{
var+=suma();
++sol;
}
else {++ind;x[ind]=0;}
}
else {car[x[ind]]=0;--ind;}
}
FILE*g=fopen("dezastru.out","w");
fprintf(g,"%f\n",var/sol);
fclose(g);
return 0;
}