Pagini recente » Cod sursa (job #1230711) | Cod sursa (job #3187892) | Cod sursa (job #1611886) | Cod sursa (job #2711108) | Cod sursa (job #3238808)
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int nr,n,p,s[30],u[30];
double v[30],P,S;
void probabilitate()
{
nr++;
P=1;
for(int i=1; i<=p; i++)
{
P=P*v[s[i]];
}
S=S+P;
}
int solutie(int k)
{
if(k==p)
{
return 1;
}
return 0;
}
int ok(int k)
{
if(u[s[k]]==0)
{
return 1;
}
return 0;
}
void BACK(int k)
{
for(int i=1; i<=n; i++)
{
s[k]=i;
if(ok(k))
{
u[i]=1;
if(solutie(k))
{
probabilitate();
}
else
{
BACK(k+1);
}
u[i]=0;
}
}
}
int main()
{
fin>>n>>p;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
BACK(1);
fout<< S/nr;
return 0;
}