Pagini recente » Cod sursa (job #2797358) | Cod sursa (job #934806) | Cod sursa (job #1116117) | Cod sursa (job #3244260) | Cod sursa (job #180997)
Cod sursa(job #180997)
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#include<stdlib.h>
int as,ev,st[26],k,n,i;
int succesor()
{
as=0;
if(st[k]<n)
{
as=1;
st[k]++;
}
return as;
}
void valid()
{
ev=1;
for(i=1;i<=k-1;i++)
if(st[i]==st[k])
{
ev=0;
break;
}
}
int main()
{
fstream f("dezastru.in",ios::in),g("dezastru.out",ios::out);
int h,pb[26],fact=1,inmul;double r=0;
f>>n>>h;
for(i=1;i<=n;i++)
f>>pb[i];
k=1;
st[k]=0;
while(k>0)
{
do
{
if(succesor())
valid();
}
while(as && !ev);
if(as)
{
if(k==h)
{
fact++;
inmul=1;
for(i=1;i<=h;i++)
inmul*=pb[st[i]];
r+=inmul;
}
else
{
k++;
st[k]=0;
}
}
else
k--;
}
g<<precision(6)<<(r/fact);
f.close();g.close();
}