Cod sursa(job #133614)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 9 februarie 2008 10:23:32
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream.h>

ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");

float a[100],v[100];
int n,K;
long nr=0;
float P=0,S=0,R;

void citire()
{
  fin>>n>>K;
    for (int i=0;i<n;i++)
      fin>>a[i];
  fin.close();
}

void back (int k)
{
  if (k==K)
  {
     P+=S*(R);
     nr++;
     return ;
  }
  for (int i=0;i<n;i++)
      if (v[i]!=1)
      {
	 S*=a[i];
	 v[i]=1;
	 back(k+1);
	 S/=a[i];
	 v[i]=0;
      }
}

int main ()
{
  citire();
  S=1;
  R=(n-K)*(n-K+1)/2;
  P=0;
  back(0);
  P/=nr;
  fout<<(long long)P<<".";
  P=P-(long long )P;
  P*=1000000;
  fout<<(long long) P<<"\n";
  fout.close();
  return 0;
}