求大佬解释,第二个点re,但代码放到副函数就能ac
查看原帖
求大佬解释,第二个点re,但代码放到副函数就能ac
614705
WHH_FZZ楼主2022/1/29 19:55
#include <bits/stdc++.h>
using namespace std;
int a[1000100];
int main()
{
    int n; cin >> n;
    for(int i = 0; i < n; i++) cin >> a[i];
    int t = *max_element(a, a + n);
    if(t <= 0) return t;
    int cnt = 0, ans = -999;
    for(int i = 0; i < n; i++)
    {
        int x = a[i];
        if(cnt + x < 0) ans = max(ans, cnt), cnt = 0;
        else cnt += x;
        ans = max(ans, cnt);
    }
    ans = max(ans, cnt);
    cout << ans << endl;
}

以上是re代码;

#include <bits/stdc++.h>
using namespace std;
int a[200005], n;
void get(int a[])
{
    int t = *max_element(a, a + n);
    if(t <= 0) {cout << t << endl; return;}
    int cnt = 0, ans = -999;
    for(int i = 0; i < n; i++)
    {
        int x = a[i];
        if(cnt + x < 0) ans = max(ans, cnt), cnt = 0;
        else cnt += x;
        ans = max(ans, cnt);
    }
    ans = max(ans, cnt);
    cout << ans << endl;
}
int main()
{
    cin >> n;
    for(int i = 0; i < n; i++) cin >> a[i];
    get(a);
}

以上是ac代码; 求大佬解释原理(委屈)

2022/1/29 19:55
加载中...