Pagini recente » Atasamentele paginii Profil Oveeh | Atasamentele paginii tp_sim | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1383669)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
double a[30], v[30], s, K, p;
int n;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
inline void Adun()
{
int i;
double x = 1;
for (i = 1; i <= K; i++)
x *= v[i];
s += x;
p++;
}
inline bool Valid(int k)
{
int i;
for (i = 1; i < k; i++)
if (v[i] == v[k])
return false;
return true;
}
inline void Back(int k)
{
int i;
for (i = 1; i <= n; i++)
{
v[k] = a[i];
if (Valid(k))
{
if (k == n) Adun();
else Back(k + 1);
}
}
}
int main()
{
int i;
fin >> n >> K;
for (i = 1; i <= n; i++)
fin >> a[i];
fin.close();
Back(1);
fout << s / p << "\n";
fout.close();
return 0;
}