OIG XI - sum

// https://szkopul.edu.pl/problemset/problem/sumy/site/?key=statement

#include <bits/stdc++.h>

using namespace std;

#define int unsigned long long

constexpr int sizik = 26, BASE = 10;

#define ar std::array
#define pr std::pair
#define vec std::vector

typedef long long ll;
typedef vec<vec<int>> _kra;

struct BigNum {
    std::vector<int> num;

    void add(BigNum u) {
        for (int i = 0; i < sizik; i++) {
            num[i] += u.num[i];

            num[i + 1] += num[i] / BASE;
            num[i] %= BASE;
        }
    }

    void print() {
        bool pisz = false;
        for (int32_t i = sizik - 1; i >= 0; i--) {
            if (!pisz && num[i] != 0) {
                pisz = true;
            }
            if (pisz) {
                std::cout << num[i];
            }
        }
    }

    BigNum(int u = 0) {
        num = std::vector<int>(sizik, 0);
        int i = 0;
        while (u > 0) {
            num[i++] = u % BASE;
            u /= BASE;
        }
    }
};

BigNum ans;

void solve() {
    int n;
    std::cin >> n;

    for (int i = 1; i <= n; i++) {
        int a;
        std::cin >> a;
        ans.add(BigNum(a * i * (n - i + 1)));
    }

    ans.print();
}

int32_t main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int t = 1;
    // std::cin >> t;

    for (; t > 0; t--) {
        solve();
    }

    return 0;
}