Pagini recente » Cod sursa (job #401952) | Cod sursa (job #1224511) | Cod sursa (job #2974010) | Cod sursa (job #46314) | Cod sursa (job #2462672)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N , P , F[25];
double A[25] , V[25] , Suma = 0;
int Factorial(int N)
{
if(N == 0)
{
return 1;
}
return N * Factorial(N - 1);
}
bool OK(int K)
{
for(int i = 1 ; i < K ; ++i)
{
if(V[i] == V[K]) return false;
}
return true;
}
void Afisare()
{
double Prod = 1;
for(int i = 1 ; i <= P ; ++i)
{
Prod = Prod * V[i];
}
Suma += Prod;
}
void Back(int K)
{
int i;
for(i = 1 ; i <= N ; ++i)
{
V[K] = A[i];
if(F[i] == 0)
{
F[i] = 1;
if(K == P)
{
Afisare();
}
else Back(K + 1);
F[i] = 0;
}
}
}
int main()
{
fin >> N >> P;
for(int i = 1 ; i <= N ; ++i)
{
fin >> A[i];
}
Back(1);
fout << Suma / Factorial(N);
return 0;
}