Pagini recente » Cod sursa (job #28417) | Cod sursa (job #1943005) | Cod sursa (job #2085773) | Cod sursa (job #1426936) | Cod sursa (job #1867943)
#include <cstdio>
#include <bitset>
FILE *in,*out;
using namespace std;
int h,pasi = 0,n;
double v[26],sol[26],s;
bitset <26> verifica;
void explore(int k)
{
if(k == h)
{
double r = 1;
for(int i = 1;i <= h;i ++)
{
r = r * sol[i];
pasi ++;
}
s += r;
}
else
{
for(int i = 1;i <= n;i ++)
{
if(verifica[v[i]] == 0)
{
verifica[v[i]] = 1;
sol[k] = v[i];
explore(k+1);
verifica[v[i]] = 0;
}
}
}
}
int main()
{
in = fopen("dezastru.in","r");
out = fopen("dezastru.out","w");
fscanf(in,"%d %d",&n,&h);
for(int i = 1;i <= n;i ++)
fscanf(in,"%d",&v[i]);
double rez;
explore(1);
printf("%lf %d",s,pasi);
rez = s/pasi;
fprintf(out,"%lf",rez);
return 0;
}