前缀和+后缀和 法

wurenchao 2023-12-02 9:27:40 3 返回题目

#include<bits/stdc++.h>

using namespace std;

const int N=100001;

int n,a[N],fl[N],fr[N],ans=INT_MAX;

int main(){

cin>>n;
for(int i=1;i<=n;++i) cin>>a[i];

fl[1]=a[1];
for(int i=2;i<=n;++i) fl[i]=a[i]+fl[i-1];//前缀和

fr[n]=a[n];
for(int i=n-1;i>=1;--i) fr[i]=a[i]+fr[i+1];//后缀和

for(int c=1;c<=n-1;++c) ans=min(ans,abs(fl[c]-fr[c+1]));

cout<<ans;
return 0;

}

{{ vote && vote.total.up }}