Cod sursa(job #1820639)
Utilizator | Data | 1 decembrie 2016 23:23:00 | |
---|---|---|---|
Problema | Dezastru | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int i,j,n,k,st[35],prob=0;
double sum=0,v[35];
inline void bktr(int val,int p,double pr)
{
st[p]=val;
if(p==k)
{
sum=sum+pr;
prob++;
}
else
{
for(int i=1;i<=n;i++)
{
int ok=1;
for(int j=1;j<=p;j++)
if(i==st[j])
ok=0;
if(ok==1)
{
bktr(i,p+1,pr*v[i]);
}
}
}
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];
}
bktr(0,0,1);
g<<fixed<<setprecision(6)<<(sum/prob);
}