Cod sursa(job #1310801)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 7 ianuarie 2015 11:13:49
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
double a[26],sum;
bool vis[26];
int b[26];
int n,k,ct;
double swap(double a,double b)
{
       double temp;
       temp=a;
       a=b;
       b=temp;
}
void ver()
{
     ct++;
     double p=1;
     for(int i=0;i<k;i++)
     {
             p*=a[b[i]];
     }
     sum+=p;
}
void permute(int i)
{
    if (i == n) ver();
    else
    {
        for(int j=0;j<n;j++)
        {
                if(vis[j]==0)
                {
                             vis[j]=1;
                             b[i]=j;
                             permute(i+1);
                             vis[j]=0;
                }
        }
   }
}
int main()
{
    freopen ("dezastru.in","r",stdin);
    freopen ("dezastru.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(int i=0;i<n;i++) 
    {
            scanf("%lf",&a[i]);
    }
    permute(0);
    printf("%.6lf\n",sum/ct);
    return 0;
}