#include <bits/stdc++.h>
using namespace std;
bool valid(vector <int>& a, long long mid, int r, int n) {
long long curr = mid;
for (int i = 0 ; i < n ; i++) {
if (curr == 0) return 1;
if (curr % r) curr += curr / r + 1;
else curr += curr / r;
curr -= a[i];
if (curr <= 0) return 1;
}
return 0;
}
int main() {
cin.tie(0); ios::sync_with_stdio(0);
int n, r;
cin >> n >> r;
vector <int> a(n);
for (int& x : a) cin >> x;
long long high = 3e14, low = 0, mid;
while (low < high) {
mid = low + (high - low + 1) / 2;
if (valid(a, mid, r, n)) low = mid;
else high = mid - 1;
}
cout << low;
}
```
結果有三筆測資 WA,都是錯誤的輸出上限,請問為何??