提交时间:2022-05-28 09:56:16

运行 ID: 970

#include <bits/stdc++.h> using namespace std; const int KmaxN=2*10e5+10; int a[KmaxN],b[KmaxN]; int main(){ int n,z=-1; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int t=n/2; for(int i=0;i<n;i++){ if(!a[i]){ for(int j=1;j+i<n;j++){ if(a[i+j]){ if(!b[i+j]){ b[i+j]=j; }else b[i+j]=min(b[i+j],j); }else break; } for(int j=1;abs(i-j)>=0;j++){ if(a[i-j]){ if(!b[i-j]){ b[i-j]=j; }else b[i-j]=min(b[i-j],j); }else break; } } } for(int i=0;i<n;i++){ cout<<b[i]<<' '; } return 0; }