众所周知,RE 一般都是由于数组开小而导致的。
本题的数据范围是 106,但是开数组开了 106 却 RE 了。
后来改了下,改成 107 就 AC。
#include <bits/stdc++.h>
using namespace std;
const int _ = 1e6 + 10;
int a[_];
int main()
{
#ifdef LOCAL
LOCALfo
#endif
;
a[0] = 0;
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
a[i] += a[i - 1];
}
int ans = -1;
for (int i = 1; i <= n; i++)
{
ans = max(ans, a[i + k] - a[i - 1]);
}
cout << ans << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int _ = 1e7 + 10;
int a[_];
int main()
{
#ifdef LOCAL
LOCALfo
#endif
;
a[0] = 0;
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
a[i] += a[i - 1];
}
int ans = -1;
for (int i = 1; i <= n; i++)
{
ans = max(ans, a[i + k] - a[i - 1]);
}
cout << ans << endl;
return 0;
}
会不会是题面数据范围错了((