Pagini recente » Cod sursa (job #293077) | Cod sursa (job #614607) | Cod sursa (job #11901) | Cod sursa (job #2033496) | Cod sursa (job #1555711)
#include<cstdio>
#define DIM 26
using namespace std;
float v[DIM], S, sol = 1;
bool b[DIM];
int N, K, a[DIM];
void Back(int, int, int);
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d", &N, &K);
for (int i = 1; i <= N; i++)
scanf("%f", &v[i]);
Back(1, N, K);
//printf("%f", S);
for (int i = 2; i <= K; i++)
S *= K;
for (int i = 1; i <= (N - K); i++)
S *= i;
for (int i = N; i > N - K; i--)
S /= i;
printf("%f",S);
}
void Back(int k, int Len, int NR)
{
if (k - 1 == NR)
{
//printf("%f ", sol);
/*for (int i = 1; i <= NR; i++)
printf("%f ", v[a[i]]);
printf("\n");*/
S += sol;
}
else
{
for (int i = 1; i <= Len; i++)
if (!b[i] && a[k - 1] < i)
{
a[k] = i;
b[i] = 1;
sol *= v[i];
Back(k + 1, Len, NR);
b[i] = 0;
sol /= v[i];
}
}
}