站外题,求助!
  • 板块灌水区
  • 楼主xihao123
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/21 09:42
  • 上次更新2025/1/21 11:58:59
查看原帖
站外题,求助!
1032514
xihao123楼主2025/1/21 09:42

刘同学有一个非常不错的习惯值得我们学习,那就是记录每日的研题情况。每天可能会有新增待研题目,也可能会研究一些原来还未解决的题目,但这两种情况不会同时出现。

刘同学只用一个数字pip_ip i ​ 来记录,如果pip_ip i ​ 是正数则表示第i天新增了pip_ip i ​ 个待研题目,如果pip_ip i ​ 是负数则表示第iii天解决了pip_ip i ​ 个题目。

日复一日年复一年,刘同学早就忘了在开始记录前有多少个待研题目了,需要你帮忙算算。

输入格式

第一行:单个整数表示 nnn;

第二行:nnn 个整数 p1,p2,…,pnp_1, p_2, …, p_np 1 ​ ,p 2 ​ ,…,p n ​ ,表示刘同学每一天的研题情况。

输出格式

单个整数:表示在开始记录研题情况之前,至少有多少个待研题目。

数据范围

对于 30%30%30% 的数据,1≤n≤10001≤n≤10001≤n≤1000;

对于 60%60%60% 的数据,1≤n≤1051≤n≤10^51≤n≤10 5 ;

对于 100%100%100% 的数据,1≤n≤1071≤n≤10^71≤n≤10 7 , −20000≤pi≤20000−20000≤p_i≤20000−20000≤p i ​ ≤20000。

样例数据

输入

输出

说明

样例1 5 -1 -2 1 -3 4 5
样例2 3 -9 -1 1 10

我的代码:

#include<bits/stdc++.h>
using namespace std;
long long n;
long long a[10000005];
long long ans;
long long z;
int main(){
	cin>>n;
	for(long long i=1;i<=n;i++){
		cin>>a[i];
	}
	for(long long i=1;i<=n;i++){
		if(a[i]<0){
			if(z>=abs(a[i])){
				z-=abs(a[i]);
			}else{
				ans+=abs(a[i])-z;
				z=0; 
			}
		}else{
			z+=a[i];
		}
	}
	cout<<ans;
	return 0;
}

2025/1/21 09:42
加载中...