我的代码:
#include <bits/stdc++.h>
using namespace std;
const int kMaxN = 1e5 + 5;
int n, s[kMaxN], H[kMaxN], y;
bool C(int x) {
int i;
for (i = x; i < n; i++) {
if (s[i] - s[i - x] <= 2 * y) {
return false;
}
}
return true;
}
int main() {
cin >> n >> y;
for (int i = 1; i < n; i++) {
cin >> H[i], s[i] = s[i - 1] + H[i];
}
int l = 0, r = n + 1;
while (l + 1 < r) {
int mid = l + r >> 1;
if (C(mid)) {
r = mid;
} else {
l = mid;
}
}
cout << l + 1 << endl;
return 0;
}
很明显,这份代码连样例都过不去,但是它 AC 了。
建议加强数据。