Cod sursa(job #68186)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 26 iunie 2007 20:23:20
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>

long long contor;
int n, b;
float p,suma, a[26], sol[26];

void citire()
{
  freopen("dezastru.in","r",stdin);
  scanf("%d %d",&n, &b);
  for (int i=1; i<=n; i++)
    scanf ("%f",&a[i]);
}


int ok(int k)
{
  int j;
  for (j=1; j<k; j++)
    if (sol[j]==sol[k]) return 0;
  return 1;
}


void afis()
{
  printf("%f ",suma/contor);
  printf("\n");
}

void back(int k)
{
  int i;

  if (k>n) {p=1; for (int j=1; j<=b; j++) p*=sol[j]; suma+=p; contor++;}
    else
      {
	for (i=1; i<=n; i++)
	  {
	    sol[k]=a[i];
	    if (ok(k)) back(k+1);
	  }
      }
}

int main()
{
  citire();
  freopen("dezastru.out","w",stdout);
  back(1);
  afis();
  return 0;
}