Pagini recente » Cod sursa (job #1626804) | Cod sursa (job #299974) | Cod sursa (job #1817124) | Cod sursa (job #1811197) | Cod sursa (job #1325052)
#include <iostream>
#include <fstream>
using namespace std;
double dez[26];
int locatii[26];
int n,k;
int total;
double valoare;
bool verificaretemporara(int n)
{
int incluse[26],i;
for (i=1;i<=25;i++)
{
incluse[i]=0;
}
for (i=1;i<=n;i++)
{
if (!incluse[locatii[i]])
incluse[locatii[i]]=1;
else
{
return false;
}
}
return true;
}
void generarepermutari(int i)
{
int j;
double acum=1.0;
if (i<=n)
{
for (j=1;j<=k;j++)
{
locatii[i]=j;
if(verificaretemporara(i))
generarepermutari(i+1);
}
}
else
{
total++;
for (i=1;i<=n;i++)
{
acum*=dez[locatii[i]];
}
valoare+=acum;
}
}
int main()
{
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int i;
in>>k;
in>>n;
for (i=1;i<=k;i++)
{
in>>dez[i];
}
generarepermutari(1);
valoare/=total;
out<<valoare;
}