例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化如下3 1 0 3 7。
第2 - n + 1行:每行1个数A i i,表示格子里的能量值(-1000000000 <= A i i <= 1000000000)
5 1 -2 -1 3 4
2
数组模拟:
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define N 50001 int a[N]; long long sum,ans; int main() { int n; while(~scanf("%d",&n)) { ans=sum=0; for(int i=0; i<n; i++) scanf("%d",&a[i]); for(int i=0; i<n; i++) { sum=sum+a[i]; if(sum<0) { ans+=abs(sum); sum=0; } } printf("%lld\n",ans); } return 0; }