题目:1007 Maximum Subsequence Sum (25 分)
题解:注意最大子序列全为0的时候
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,string> PII;
const int N=1e5+10;
const int mod=100000007;
LL a[10010];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
bool flag=0;
LL sum=0;
LL maxx=-1;
int l=1;
int max_l=1,max_r=n;
for(int i=1;i<=n;i++){
if(sum+a[i]>=0){
if(maxx<sum+a[i]){
max_l=l,max_r=i;
maxx=sum+a[i];
}
flag=1;
sum+=a[i];
}else{
sum=0;
l=i+1;
}
}
if(!flag){
printf("0 %lld %lld",a[1],a[n]);
}else{
printf("%lld %lld %lld",maxx,a[max_l],a[max_r]);
}
return 0;
}