题目:$\textsf{\textcolor{#F39C11}{P3353 在你窗外闪耀的星星}}$

提交记录:

错误原因:数组开长度 LEN($a_0 \sim a_{LEN - 1}$),使用时使用到 $a_{LEN}$。

#include <bits/stdc++.h>
using namespace std;
const int LEN = 1e5 + 5;
int n, w, a[LEN], ans = 0;
int main()
{
    // cout << ans;
    cin >> n >> w;
    // cout << ans;
    for (int i = 1; i <= n; i++)
    {
        int x, b;
        cin >> x >> b;
        a[x] += b;
    }
    // cout << "ans " << ans << "\n";
    // for (int i = 1; i <= LEN; i++) <--------数组越界!!!!
    for (int i = 1; i <= 1e5; i++)
        a[i] += a[i - 1];
    // cout << "ans " << ans << "\n";
    // for (int i = 1; i <= 300; i++)
    //     cout << a[i] << " ";
    // cout << "ans " << ans << "\n";
    // ans = 0;
    for (int l = 0; l + w - 1 <= LEN; l++)
    {
        // cout << a[l + w] - a[l] << " ";
        // cout << ans << "\n";
        ans = max(ans, a[l + w] - a[l]);
        // cout << l << " " << ans << " " << a[l + w] << " " << a[l] <<" "<< l+w << "\n";
    }
    cout << ans;
    return 0;
}