题目大意是把一串数字分三部分,第一部分和和第三部分和相等,并让和尽可能的大
思路就是·两边开始加,谁小谁多加一个,直到两边和相同,记录下来,然后继续加加到数字重复为止
懒着判断该进行到哪里结束,就把加过的全都归零了
ac代码
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
long long out1=0,out2=0;
int number[n];
int i,j;
for(i=0;i<n;i++)
{
scanf("%d",&number[i]);
}
out1=number[0];
number[0]=0;
out2=number[n-1];
number[n-1]=0;
i=1;
j=n-2;
long long out=0;
while(i<j+5)
{
if(out1<out2)
{
out1+=number[i];
number[i]=0;
i++;
}
if(out1>out2)
{
out2+=number[j];
number[j]=0;
j--;
}
if(out1==out2)
{
out=out1;
out1+=number[i];
number[i]=0;
i++;
}
}
printf("%lld\n",out);
return 0;
}