求助
查看原帖
求助
638153
KingkongLi楼主2024/1/23 22:24
#include<bits/stdc++.h>
using namespace std;
long long n,a[300005],l,m=999999999,cnt;
vector<long long> x,y;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]){
            l++;
            if(!a[i-1])x.push_back(i);
        }else if(!a[i]&&l){
            if(x[x.size()-1]==1)m=min(m,i-2LL);
            else m=min(m,(l-1)/2);
            l=0;
            y.push_back(i-1);
        }
    }
    if(l){
        m=min(m,l-1);
        y.push_back(n);
    }
    for(int i=0;i<x.size();i++)cnt+=ceil(1.0*(y[i]-x[i]+1)/(2*m+1));
    cout<<cnt;
    return 0;
}
2024/1/23 22:24
加载中...