1 条题解

  • 0
    @ 2026-5-29 12:59:13
    #include<bits/stdc++.h>
    using namespace std;
    int a[1000005];
    int cn[1000005];
    int ds[1000005];
    int main(){
    	
    	int n;
    	cin>>n;
    	int cnt=0;
    	for(int i=1;i<=n;i++){
    		cin>>a[i]; 
    		if(a[i]==0){
    			cnt+=cn[i-1];
    			ds[i]=ds[i-1]+1;
    			cn[i]=cn[i-1];
    		}
    		else{
    			ds[i]=ds[i-1];
    			cn[i]=cn[i-1]+1;
    		}
    	}
    	int max=cnt;
    	for(int i=1;i<=n;i++){
    		int t;
    		if(a[i]==0){
    			t=cnt-(cn[i-1])+(ds[n]-ds[i+1-1]);
    		}
    		else{
    			t=cnt-(ds[n]-ds[i+1-1])+(cn[i-1]);
    		}
    		if(max<t){
    			max=t;
    		}
    	}
    	cout<<max;
    	return 0;
    }
    

    信息

    ID
    4232
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    (无)
    递交数
    82
    已通过
    15
    上传者