点击打开链接
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<cstring>
#include<string>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int Sum1[100005],dp[100005];
int main()
{
long long result=0;
int n=0,i=0,num=0,temp=0,max1=0;
while(cin>>n){
i=0,num=0,temp=0,max1=0;
memset(Sum1,0,sizeof(Sum1));
for(i=1;i<=n;i++){
scanf("%d",&num);
Sum1[i]=Sum1[i-1]+num;
dp[i]=(1890*num+143)%10007-num;
}
temp+=dp[1];
max1=0;
for(i=2;i<=n;i++){
if(temp<0) temp=dp[i];
else temp+=dp[i];
if(temp>max1) max1=temp;
}
if(max1<0)
printf("%d\n",Sum1[n]);
else
printf("%d\n",Sum1[n]+max1);
}
return 0;
}