#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;
}