Mai intai trebuie sa te autentifici.
Cod sursa(job #1552199)
Utilizator | Data | 17 decembrie 2015 13:40:09 | |
---|---|---|---|
Problema | Dezastru | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.81 kb |
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int n,k;
float t[26];
int v[26];
float rs;
long nr_perm=1;
fstream f;
void back(int x)
{
bool ok;
if (x==n)
{
float prod=1;
for (int i=1;i<=k;i++)
{
prod*=t[v[i]];
}
rs+=prod/nr_perm;
}
else
{
for (int i=1;i<=n;i++)
{
ok=true;
for (int j=1;j<=x;j++)
if (v[j]==i) {ok=false; break;}
if (ok) {v[x+1]=i; back(x+1);}
}
}
}
main()
{
f.open("dezastru.in",ios::in);
f>>n>>k;
for (int i=1;i<=n;i++)
nr_perm*=i;
for (int i=1;i<=n;i++)
f>>t[i];
back(0);
f.close();
f.open("dezastru.out",ios::out);
f<<setprecision(6)<<rs;
}