#include <bits/stdc++.h>
using namespace std;
using int64 = long long;

int main() {
    int n;
    cin >> n;
    vector<int64> a(n + 1);
    for (int i = 1; i <= n; ++i) cin >> a[i];

    // dp[r]:处理到当前右侧(初始为 n+1),已击败数量 mod 10 = r 的最优值
    array<int64, 10> dp{}; // 初始全 0,表示 i = n+1 时的边界
    for (int i = n; i >= 1; --i) {
        array<int64, 10> ndp{};
        for (int r = 0; r < 10; ++r) {
            // 选择放走
            int64 keep = i + dp[r];
            // 选择击败(这是第 r+1 次击败)
            int nr = (r + 1) % 10;
            int64 beat = a[i] * (1 + nr) + dp[nr];
            ndp[r] = max(keep, beat);
        }
        dp = ndp;
    }
    cout << dp[0] << '\n'; // 初始已击败 0 个
    return 0;
}