Cod sursa(job #79220)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 21 august 2007 12:57:21
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
# include <stdio.h>

const long int NRB=25;
const long int MAXN=(long int)1<<NRB;
long int n,k;
float s,v[NRB+1],p[NRB+1][NRB+1];

void citire()
{
FILE *f=fopen("dezastru.in","r");
fscanf(f,"%ld%ld",&n,&k);
long int i;
for (i=1;i<=n;i++) fscanf(f,"%f",&v[i]);
fclose(f);
}

void scrie(float sol)
{
FILE *g=fopen("dezastru.out","w");
fprintf(g,"%-.6f\n",sol);
fcloseall();
}

int main()
{
citire();
long int i,j;
for (i=1;i<=n;i++) p[1][i]=v[i]+p[1][i-1];
for (i=2;i<=k;i++)
for (j=1;j<=n;j++) p[i][j]=p[i][j-1]+p[i-1][j-1]*v[j];
long long int c[30][30]={0};
c[0][0]=1;
for (i=1;i<=n;i++)
	{
	c[i][0]=1;
	for (j=1;j<=k;j++)
		c[i][j]=c[i-1][j]+c[i-1][j-1];
	}
scrie(p[k][n]/c[n][k]);
return 0;
}