Mai intai trebuie sa te autentifici.
Cod sursa(job #1908652)
| Utilizator | Data | 7 martie 2017 09:51:26 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.77 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,k,i,x[26];
float a[26];
double s;
unsigned long long fact(int n)
{
if(n==0)
return 1;
if(n==k)
return n;
else
return n*fact(n-1);
}
float calcul()
{
int j;
float p=1;
for(j=1;j<=k;j++)
p*=a[x[j]];
s+=p;
}
void A(int i)
{
int maxx=*max_element(x,x+i);
for(int valk=1+maxx;valk<=n;valk++)
{
x[i]=valk;
for(int v=1;v<=i;v++)
{
swap(x[v],x[i]);
if(i<k)
A(i+1);
else
calcul();
swap(x[v],x[i]);
}
}
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
A(1);
g<<(s/fact(n));
return 0;
}
