60分求助
查看原帖
60分求助
501652
LCY0921楼主2022/10/9 01:37
#include <bits/stdc++.h>
using namespace std;
int lmin[1000006];
int rmax[1000006];
int rmin[1000006];
int n;
int emo[1000006];

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &emo[i]);
	}
	int ln = 0;
	for (int i = 1; i <= n; i++) {
		ln += emo[i];
		lmin[i] = min(lmin[i - 1], ln);
	}
	int rx = 0;
	for (int i = n; i >= 1; i--) {
		rx += emo[i];
		rmax[i] = rx;
		rmin[i] = rmin[i + 1] + emo[i];
	}
	int t = 0;
	for (int i = 1; i <= n; i++) {
		if (rmin[i] >= 0 && rmax[i] + lmin[i - 1] >= 0)
			t++;
	}
	cout << t;
	/*for (int i = 1; i <= n; i++) {
		cout << rmin[i] << " ";
	}*/
	return 0;
}

评测记录

2022/10/9 01:37
加载中...