通过了80%,用双指针写的,想了一下午也想不明白怎么回事😫
#include<iostream> #include<algorithm> using namespace std; int a[101000]; int main() { int n; cin>>n; int dis=0; for(int i=1;i<=n;i++){ cin>>a[i]; dis+=a[i]; } a[0]=a[n]; int r=0,ans=0,temp=0; for(int l=1;l<=n;l++){ while(temp<dis/2){ r++; temp+=a[r%n]; } if(temp==dis)continue; temp=min(dis-temp,temp); ans=max(temp,ans); temp-=a[l]; } cout<<ans; }
全部评论
(2) 回帖