Pagini recente » Cod sursa (job #963589) | Cod sursa (job #731014) | Cod sursa (job #2897396) | Cod sursa (job #976667) | Cod sursa (job #765829)
Cod sursa(job #765829)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define nmax 26
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k;
double a[nmax], s[nmax];
void citeste(){
f >> n >> k;
for(int i=1; i<=n; i++) f >> a[i], s[i] = s[i-1] + a[i];
}
double fact(int x){
double p = 1.0;
for(int i=1; i<=x; i++) p = p * double(i);
return p;
}
void rezolva(){
double rez = 0.0;
double factorial = fact(n);
int cnt = 1;
for(int i=1; i<n; i++) cnt = cnt * i;
for(int i=1; i<=n; i++){
double dr = s[n] - s[i];//suma de pe intervalul (i,n]
double st = s[i-1];//suma de pe intervalul [1,i)
rez += ((a[i]*(dr+st))/factorial);
}
int cat = (cnt*k)/((n-1)+(n-1));
g << rez*cat << "\n";
}
int main(){
citeste();
rezolva();
}