悬关 40分
查看原帖
悬关 40分
754300
Sirkey楼主2023/3/4 17:37
#include<bits/stdc++.h>
using namespace std;
const int MX=1e5+10;
int n,m,a,cnt,s[MX];
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>a;
		if(a<0) {
			++cnt;
			s[1+i-cnt]++;
		} else cnt=0;
	}
	int nxt=1,len,ans=0,T_3=0,bq_best=0;
	for(int i=1; i<=n; i++) {
		if(s[i]>0) {
			len=max(0,min(i-nxt,2*s[i]));
			if(s[i]==bq_best) {
				T_3=max(min(i-nxt,3*s[i])-len,T_3);
				bq_best=s[i];
			} else if(s[i]>bq_best) {
				T_3=min(i-nxt,3*s[i])-len;
				bq_best=s[i];
			}
			nxt=i;
			ans+=len;
		}
	}
	cout<<ans+T_3;
	return 0;
}
2023/3/4 17:37
加载中...