func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 2e5 + 111;   int N;   long long A[maxn];   map<long long, long long> f;   void rl(long long &x) {     char ch = (getchar());     x = 0;     while ((ch <  0  || ch >  9 )) ch = (getchar());     while (!(ch <  0  || ch >  9 )) x = x * 10 + ch -  0 , ch = (getchar());   }   int main() {     scanf( %d , &N);     for (int i = 1; i <= N; ++i) rl(A[i]);     f[A[1] - 1] = 0;     for (int i = 2; i <= N; ++i)       for (map<long long, long long>::iterator j = f.lower_bound(A[i]);            j != f.end(); f.erase(j++)) {         long long x = j->first, y = j->second;         f[x % A[i]] = max(f[x % A[i]], y + 1ll * (i - 1) * (x - x % A[i]));         f[A[i] - 1] =             max(f[A[i] - 1], y + 1ll * (i - 1) * A[i] * ((x - A[i] + 1) / A[i]));       }     long long ans = 0;     for (map<long long, long long>::iterator i = f.begin(); i != f.end(); ++i)       ans = max(ans, i->first * N + i->second);     cout << ans;     return 0;   }   