NKSEQ - Dãy số
Tác giả: khuc_tuan
Ngôn ngữ: C++
#include <iostream>
using namespace std;
int n;
int a[100010], s[100010], minl[100010], minr[100010];
int main() {
scanf("%d", &n);
for(int i=0;i<n;++i) {
scanf("%d", a+i);
s[i] = a[i] + (i==0?0:s[i-1]);
minl[i] = s[i];
if(i>0) minl[i] <?= minl[i-1];
}
for(int i=n-1;i>=0;--i) {
minr[i] = s[i];
if(i+1<n) minr[i] <?= minr[i+1];
}
int res = 0;
for(int i=0;i<n;++i) {
bool ok = true;
if(minr[i]-(i==0?0:s[i-1])<=0) ok = false;
int seg = s[n-1] - (i==0?0:s[i-1]);
if(i>0 && seg+minl[i-1]<=0) ok = false;
res += ok;
}
cout << res << endl;
return 0;
}