func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 200005;   int n;   long long A[N];   map<long long, long long> MP;   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; i++) scanf( %lld , &A[i]);     MP.insert({A[1] - 1, 0});     for (int i = 2; i <= n; i++) {       long long B = -1;       while (MP.rbegin()->first >= A[i]) {         long long a = MP.rbegin()->first;         long long b = MP.rbegin()->second;         MP[a % A[i]] = max(MP[a % A[i]], b + a / A[i] * A[i] * (i - 1));         B = max(B, b + (a / A[i] - 1) * A[i] * (i - 1));         MP.erase(a);       }       if (B >= 0) MP[A[i] - 1] = max(MP[A[i] - 1], B);     }     long long MX = 0;     for (auto X : MP) MX = max(MX, X.first * n + X.second);     return !printf( %lld n , MX);   }   