Cod sursa(job #765829)

Utilizator vendettaSalajan Razvan vendetta Data 9 iulie 2012 14:27:43
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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();



}