Cod sursa(job #410234)

Utilizator RoswenRus Alexandru Roswen Data 4 martie 2010 10:48:08
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
FILE *f=fopen("dezastru.in","r"), *g=fopen("dezastru.out","w");
int pr=1,k,n,m,i;
float st[26],s,stot,v[26],p;

int valid(int k)
{
	int i;
	for(i=1;i<k;i++)
		if(st[i]==st[k])
			return 0;
	return 1;
}

void back(int k)
{
	int i;
	for(i=1;i<=n;i++)
	{
		st[k]=v[i];
		if(valid(k))
		if( k==m )
		{
			p=1;
			for(int j=1;j<=k;j++)
				p*=st[j];
			stot+=p/pr;
		}
		else back(k+1);
	}
}

int main()
{
	fscanf(f, "%d %d", &n, &m);
	for(i=1;i<=n;i++)
	{
		pr*=i;
		fscanf(f, "%f", &v[i]);
	}
	back(1);
	fprintf(g, "%.6f", stot);
}