#54060: 為何會 WA?


JengSwan (Jeng Swan)


程式碼:

 

```cpp=

#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,都是錯誤的輸出上限,請問為何??
#54061: Re: 為何會 WA?


JengSwan (Jeng Swan)


以為這裡支援 Markdown...