考虑到数据量,不可能建立等长的数组(也没有意义)
需要做的只是记录最小累计值(minn),并且每读入一个值(tem)就将目前的累计值(now)与最小值比较,更小则替代,答案(ans)取当前累计值与最小值的差值
考虑到题目要求,ans小于等于0时输出Game Over
注意,以上变量都为long long
#include<bits/stdc++.h> using namespace std; int n; long long tem,minn,now,ans; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>tem; now+=tem; minn=min(minn,now); ans=max(ans,now-minn); } if(ans<=0) puts("Game Over"); else cout<<ans; return 0; }
原文:https://www.cnblogs.com/adaxyy/p/14476281.html