点击查看代码
#pragma GCC optimize("O3,unroll-loops")
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int n;
long long a[N];
int main()
{
ios::sync_with_stdio(0),cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
int l1=1,l2=2;
set<long long> st;
long long ans=2e18;
for(l2=2;l2<=n;l2++,l1++){
long long sum1=0;
for(int r1=l1;r1<=n;r1++){
sum1+=a[r1];
st.insert(sum1);
}
long long sum2=0;
for(int r2=l2;r2<=n;r2++){
sum2+=a[r2];
if(!st.empty()){
auto ps = st.lower_bound(sum2);
if(ps!=st.end()){
ans=min(ans,*ps-sum2);
}
if(ps!=st.begin()){
ans=min(ans,sum2-*prev(ps));
}
}
}
}
cout<<ans<<"\n";
return 0;
}