模拟0分求助互关
查看原帖
模拟0分求助互关
1382402
ACmemberfamert楼主2024/11/22 21:22
#include<iostream>
#include<cstdio>
#include<string.h>
#include<math.h> 
using namespace std;
const int N=1e6+10;
int a[N];
int sum[N];
bool vis[N];
bool flag=true;
int main(){
	int n;
	cin>>n;
	int num=0;
	memset(a,0,sizeof(a));
	memset(sum,0,sizeof(sum));
	memset(vis,0,sizeof(vis));
	for(int i=1;i<=n;i++){
		cin>>a[i];
		sum[i]=sum[i-1]+a[i];
		if(a[i]>0){
			vis[i]=1;
		}
	}
	int kem=0;
	int tem=0;
	for(int i=1;i<=n;i++){
		if(vis[i]==0){
			if(flag==false){
			kem+=a[i];
		}
			tem+=a[i];
		}
		if(i==n||vis[i]==1){
			if(flag==true){
		    num+=abs(tem);
		}
		if(kem<0){
			num+=abs(kem);
		}
			tem=0;
			kem=a[i];
			flag=false;
		}	
	}
	printf("%d",num+1);
	return 0;
}
2024/11/22 21:22
加载中...