HDU 5783 Divide the Sequence
开个栈弹一下。
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi=acos(-1.0),eps=1e-8; void File() { freopen("D:\\in.txt","r",stdin); freopen("D:\\out.txt","w",stdout); } inline int read() { char c = getchar(); while(!isdigit(c)) c = getchar(); int x = 0; while(isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); } return x; } stack<LL>s; int n;LL x; int main() { while(~scanf("%d",&n)) { while(!s.empty()) s.pop(); for(int i=1;i<=n;i++) { scanf("%lld",&x); if(s.empty()) s.push(x); else { if(x>=0) { if(s.top()>=0) s.push(x); else { LL top=s.top(); s.pop(); s.push(x+top); } } else { while(1) { LL top=s.top(); s.pop(); x=x+top; if(x>=0) break; if(s.empty()) break; } s.push(x); } } } printf("%d\n",s.size()); } return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步