请问一下为什么我的代码会 RE
查看原帖
请问一下为什么我的代码会 RE
523217
zrc4889楼主2022/11/4 14:17

众所周知,RE 一般都是由于数组开小而导致的。

本题的数据范围是 10610^6,但是开数组开了 10610^6 却 RE 了。

后来改了下,改成 10710^7 就 AC。

RE


#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;
}

AC


#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;
}

会不会是题面数据范围错了((

2022/11/4 14:17
加载中...