Pagini recente » Cod sursa (job #1379242) | Cod sursa (job #1308115) | Cod sursa (job #3271915) | Cod sursa (job #2513552) | Cod sursa (job #2265349)
#include <fstream>
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int n, p, c;
double v[50], x[50], s;
int fact (int n){
if (n == 0)
return 1;
return fact(n-1)*n;
}
double calcul (int k){
int i;
double p = 1;
for (i=1; i<=k; i++){
p *= x[i];
}
return p;
}
bool verif (int k){
int i;
if (k == 1)
return true;
for (i=1; i<k; i++){
if (x[i] == x[k])
return false;
}
return true;
}
void bkt (int k){
int i;
if (k == n + 1){
c++;
s += calcul(p);
return ;
}
for (i=x[k]+1; i<=n; i++){
x[k] = v[i];
if (verif(k)){
bkt(k+1);
}
}
}
int main(){
fin >> n >> p;
for (int i=1; i<=n; i++){
fin >> v[i];
}
bkt(1);
fout << s/c;
return 0;
}