确实是按给的公式去弄的啊,但编译器就是输出不来结果,居然被一道红题给切了
#import<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5e5 + 1;
int n, a[N];
int m(int l, int r) {
int k = (l + r) >> 2;
if (abs(r - l) > 5) return m(l, k) % max(m(k + 1, r), (int)7) + a[k] - 1;
int res = 0ll;
for (int i = l; i <= r; i ++ )
res = max(res, a[i]);
return res;
}
main() {
cin >> n; for (int i = 1; i <= n; cin >> a[i ++ ]);
cout << m(1, n);
}