Pagini recente » Cod sursa (job #1055742) | Cod sursa (job #2923235) | Cod sursa (job #2884068) | Cod sursa (job #2514099) | Cod sursa (job #954292)
Cod sursa(job #954292)
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k, a[26], i, nr;
double p[26], prob;
int valid()
{
int i, j;
for(i = 1; i <= k; i++)
for(j = 1; j <= k; j++)
if(a[i] == a[j] && i!= j)
return 0;
return 1;
}
void solve()
{
double part = 1;
for(i = 1; i <= k; i++)
part = part * p[a[i]];
prob += part;
nr++;
}
void back()
{
int t = 1;
while(t > 0)
{
if(t == k + 1)
{
solve();
t--;
}
else
{
if(a[t] == n)
{
a[t] = 0;
t--;
}
else
{
a[t]++;
if(valid())
a[++t] = 0;
}
}
}
}
int main()
{
fin >> n >> k;
for(i = 1; i <= n; i++)
fin >> p[i];
back();
fout << prob / nr;
return 0;
}