Pagini recente » Cod sursa (job #2025364) | Cod sursa (job #2753918) | Cod sursa (job #891376) | Cod sursa (job #1299873) | Cod sursa (job #1014576)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
int n, m, t;
int sol[30];
float probabilitate;
float v[30];
void citeste ()
{
f>>n>>m;
for (int i=1; i<=n; i++) f>>v[i];
}
void adauga ()
{
t++;
float p=1;
for (int i=1; i<=m; i++) p=p*v[sol[i]];
//cout<<p<<' ';
// for (int i=1; i<=m; i++) cout<<sol[i]<<' ';
//cout<<'\n';
probabilitate+=p;
}
void genereaza (int k)
{
if (k==m+1) adauga ();
else
{
int l=n-m+k;
for (int i=sol[k-1]+1; i<=l; i++) {sol[k]=i; genereaza (k+1);}
}
}
int main ()
{
citeste ();
genereaza (1);
probabilitate/=t*1.0;
g<<fixed<<setprecision(6)<<probabilitate<<'\n';
return 0;
}