Cod sursa(job #37874)

Utilizator c_iulyanCretu Iulian c_iulyan Data 25 martie 2007 12:56:59
Problema Dezastru Scor 60
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.55 kb
#include<fstream.h>
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,k,x[100];
float a[100];
float p,s;
long nr;

int cont(int i)
{if(i==1) return 1;
if(x[i]<=x[i-1]) return 0;
return 1;
}

void af()
{p=1;
for(int i=1;i<=k;i++)
p=p*a[x[i]];
s=s+p;
}

void back()
{int i=1;
while(i)
  {while(i&&i<=k)
     {x[i]++;
     if(x[i]>n)
	 {x[i]=0;
	 i--;
	 }
     else if(cont(i)) i++;
     }
  if(i>k) {af(); i=k; nr++;}
  }
}

int main()
{f>>n>>k;
for(int i=1;i<=n;i++)
f>>a[i];
back();
g<<s/nr;
return 0;
}