第一个测试点输出没错,但是他就是没算我对
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,g[N],f[N];
void in(){
string a;
cin>>a;
n=a[0]-'0';
int l=a.size();
bool st=0;
for(int i=1,j=1;i<l;i++){
if(!(a[i]>='0'&&a[i]<='9'||a[i]=='-'))break;
if(a[i]=='-'){
st=1;
continue;
}
if(st==1){
g[j]=0-(a[i]-'0');
st=0;
j++;
}
else {
g[j]=a[i]-'0';
j++;
}
}
}
int main(){
in();
for(int i=1;i<=n;i++){
f[i]=max(0,f[i-1]+g[i]);
}
int ans;
for(int i=1;i<=n;i++){
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}
第一个测试点
:7-349-2-58-3 结果是14