牛客子数组绝对值的最大值

子数组绝对值的最大值

描述
小红拿到了一个长为
n
n 的数组
a
a,她想知道子数组和的绝对值的最大值是多少,请你帮帮她。
输入描述:
第一行输入一个整数
n
(
1

n

2
×
1
0
5
)
n(1≦n≦2×10
5
)。
第二行输入
n
n 个整数
a
i
(

1000

a
i

1000
)
a
i

(−1000≦a
i

≦1000)。
输出描述:
输出一个整数,代表子数组和的绝对值的最大值。

include

include

include

using namespace std;
using ll=long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
ll n;
cin>>n;
vectora(n);
for(ll i=0;i<n;i++)cin>>a[i];
vectormadp(n);
vectormidp(n);
madp[0]=a[0];
midp[0]=a[0];
ll mins=midp[0];
ll maxs=madp[0];
for(ll i=1;i<n;i++)
{
madp[i]=max(a[i],madp[i-1]+a[i]);
midp[i]=min(a[i],midp[i-1]+a[i]);
mins=min(mins,midp[i]);
maxs=max(maxs,madp[i]);
}
cout<<max(abs(maxs),abs(mins));
return 0;
}

posted @ 2026-04-03 21:22  lagranSun  阅读(2)  评论(0)    收藏  举报