Cod sursa(job #428343)

Utilizator IAmASuperCerealVictor Andrei IAmASuperCereal Data 29 martie 2010 10:14:55
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
int s[10001],k,n,p,x=0;
float a[10001],b[10001],rez;
bool v[10001];
void back(int k)
{
	if(k==n+1)
   	{
		x++;
		b[x]=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;
}