Pagini recente » Cod sursa (job #416108) | Cod sursa (job #1411323) | Cod sursa (job #2385460) | Cod sursa (job #2878022) | Cod sursa (job #2870133)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
double v[350];
double x[350];
double s[35000];
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==m)
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];
}
g<<(1.000000*suma)/cnt;
return 0;
}