Pagini recente » Cod sursa (job #912577) | Cod sursa (job #2537242) | Cod sursa (job #3199608) | Cod sursa (job #2195761) | Cod sursa (job #1313509)
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int n,k,m,st[40],nr;
double v[40],S;
void afis()
{
float s=1;
for(int i=1; i<=m; i++)
s*=v[st[i]];
s=s/nr;
S=S+s+s;
}
int valid()
{
for(int i=1;i<k;i++)
if(st[i]==st[k])
return 0;
return 1;
}
void backc()
{
k=1;
while(k>=1)
{if(st[k]<n)
{st[k]++;
if(valid()==1)
{if(k==m)
afis();
else
{k++;
st[k]=st[k-1];
}
}
}
else
k--;
}
}
int main()
{int i;
ifstream f("dezastru.in");
FILE *g;
g=fopen("dezastru.out","w");
f>>n>>m;
nr=1;
for(i=n;i>=2;i--)
nr=nr*i;
for(i=1;i<=n;i++)
{
f>>v[i];}
backc();
fprintf(g,"%.6f",S);
return 0;
}