Pagini recente » Cod sursa (job #2708665) | Cod sursa (job #2925467) | Cod sursa (job #1641157) | Cod sursa (job #2882042) | Cod sursa (job #2870117)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
double v[35];
double x[35];
double s[35];
int n,m,i,cnt=0;
int ok(int poz)
{
for(int i=1;i<poz;i++)
if(v[poz]==v[i])
return 0;
return 1;
}
void afisare(int m)
{
double suma=1;
for(int i=1;i<=m;i++)
{
suma=suma*v[i];
}
cnt++;
s[cnt]=s[cnt]+suma;
}
void bkt(int nivel)
{
for(int i=1;i<=n;i++)
{
v[nivel]=x[i];
if(ok(nivel))
if(nivel==n)
afisare(m);
else
bkt(nivel+1);
}
}
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
f>>x[i];
bkt(1);
double suma=0;
for(i=1;i<=cnt;i++)
{
suma=suma+s[i]/cnt;
}
g<<fixed<<setprecision(6)<<suma;
return 0;
}