虽然题目很简单,但是人不是一般的菜,
这几行第一个测试点过不去,想知道为啥
#include
c++.h>
using namespace std;
int sum;
int N;
int dis[10000006];
int main(){
cin>>N;
for(int i=0;i<N;i++){
cin>>dis[i];
sum+=dis[i];
}
int t=0,maxm=0,temp=0,use=0;
for(int j=0;j<N-1;j++){
int maxn=0,last=0,flag=0;
for(int k=t;k<N-1;k++){
last=temp;
t=k;
temp+=dis[k];
if(sum-temp<temp) use=sum-temp;
else use=temp;
if(maxn<use) maxn=use;
if(last>=use) {
t--;
temp-=dis[k];
break;
}}
if(maxn>maxm) maxm=maxn;
temp-=dis[j];
}
cout<<maxm<<endl;
}
using namespace std;
int sum;
int N;
int dis[10000006];
int main(){
cin>>N;
for(int i=0;i<N;i++){
cin>>dis[i];
sum+=dis[i];
}
int t=0,maxm=0,temp=0,use=0;
for(int j=0;j<N-1;j++){
int maxn=0,last=0,flag=0;
for(int k=t;k<N-1;k++){
last=temp;
t=k;
temp+=dis[k];
if(sum-temp<temp) use=sum-temp;
else use=temp;
if(maxn<use) maxn=use;
if(last>=use) {
t--;
temp-=dis[k];
break;
}}
if(maxn>maxm) maxm=maxn;
temp-=dis[j];
}
cout<<maxm<<endl;
}
0条回帖
回帖