Pagini recente » Cod sursa (job #396374) | Cod sursa (job #3276708) | Cod sursa (job #1811994) | Cod sursa (job #2555676) | Cod sursa (job #538523)
Cod sursa(job #538523)
#include<iostream>
#include<fstream.h>
ifstream f("dezastru.in");
ofstream g("dezastru.out");
using namespace std;
int st[100],n,k;
double sanda=1,total_probabil=0;
double a[100];
int valid(int p)
{
int i;
for(i=1;i<p;i++)
if(st[i]==st[p])return 0;
return 1;
}
void prod()
{
int i;
sanda=1;
for(i=1;i<=k;i++)
sanda=sanda*a[st[i]];
total_probabil=total_probabil+sanda;
/*
cout<<sanda<<" ";
system("pause");*/
}
//void afisare(){int i;for(i=1;i<=k;i++) g<<st[i]; g<<endl;}
void back(int p)
{int pval;
for(pval=1;pval<=n;pval++)
{st[p]=pval;
if(valid(p))
if(p==k)
prod();
else
back(p+1);
}
}
int main()
{int i,j,fact=1;
f>>n>>k;
for(i=1;i<=n;i++)
{f>>a[i];
fact*=i;
}
back(1);
g<<total_probabil/fact;
f.close();
g.close();
return 0;
}