Pagini recente » Cod sursa (job #2640528) | Cod sursa (job #1808378) | Cod sursa (job #187259) | Borderou de evaluare (job #1567141) | Cod sursa (job #642858)
Cod sursa(job #642858)
#include<iostream>
#include<fstream>
using namespace std;
fstream f("dezastru.in",ios::in);
fstream g("dezastru.out",ios::out);
int n,r,st[100];
float p[100],prob=0;
void back(int k)
{
if(k==r)
{
int i;
float produs=1;
for(i=0; i<r; i++)
produs=produs*p[st[i]];
prob=prob+produs;
}
else
{
if(k>0)
st[k]=st[k-1];
else
st[k]=-1;
while(st[k]<n-r+k)
{
st[k]++;
back(k+1);
}
}
}
long factorial(int x)
{
long i,prod=1;
for(i=1; i<=x; i++)
prod*=i;
return prod;
}
int main()
{
int i;
f>>n>>r;
for(i=0; i<n; i++)
f>>p[i];
back(0);
g<<(prob*2)/float(factorial(n));
f.close(); g.close();
return 0;
}