Cod sursa(job #428360)

Utilizator IAmASuperCerealVictor Andrei IAmASuperCereal Data 29 martie 2010 10:25:57
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
int s[34000000],k,n,p,x=0;
float a[34000000],b[34000000],rez;
bool v[34000000];
void back(int k)
{
	if(k==n+1)
   	{
		x++;
		b[x]=float(1);
      	for(int i=1;i<=p;i++)
				b[x]*=a[s[i]];
		return;
	}
   for (int i=1;i<=n;i++)
   	if(v[i]==false)
      	{
         	s[k]=i;
            v[i]=true;
            back(k+1);
            v[i]=false;
		}
}
int main()
{
	freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
	scanf("%d%d",&n,&p);
	for(int i=1;i<=n;i++)
		scanf("%f",&a[i]);
    back(1);
	for(int i=1;i<=x;i++)
		rez+=b[i]/float(x);
	printf("%.6f\n",rez);
    return 0;
}