Pagini recente » Cod sursa (job #2172929) | Cod sursa (job #2307150) | Cod sursa (job #2723829) | Cod sursa (job #2383897) | Cod sursa (job #605623)
Cod sursa(job #605623)
#include <fstream>
#include <iomanip>
using namespace std;
long double v[40],st[40],mem[40];
short int k,n,n2;
int nrper;
void citire(); void back(int niv);
void memrez();
int main()
{
citire();
back(1);
long double fin=0;
for(int i=1;i<=n2;i++)
fin+=mem[i]/nrper;
ofstream fout("dezastru.out");
fout<<fixed<<setprecision(6)<<fin;
fout.close();
return 0;
}
void back(int niv)
{
for(int i=1;i<=n;i++)
{
st[niv]=v[i];
if((st[niv-1]<st[niv] || st[niv-1]>st[niv]) &&st[niv-1]!=st[niv])
{
if(niv==k)
{
memrez();
}
else
back(niv+1);
}
}
}
void memrez()
{
long double p=1;
for(int i=1 ; i<=k ; i++)
{
p*=st[i];
}
n2++;
mem[n2]=p;
nrper++;
}
void citire()
{
ifstream fin("dezastru.in");
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
fin.close();
}