Distances to Zero

来源:互联网 发布:福建广播网络电视台 编辑:程序博客网 时间:2024/05/22 08:13

点击打开链接

B - Distances to Zero

 
#include<stdio.h>#include<iostream>  #include<algorithm>  #include<string.h>   using namespace std;    int a[200005];int b[200005];int c[200005];int main(){    int n,i,j,s,m=0;    int k=0; memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));scanf("%d",&n);    for(i=0;i<n;i++){          scanf("%d",&a[i]);          if(a[i]==0) {b[k]=i;k++;}  } for(i=0;i<n;i++){if(i<=b[m])c[i]=b[m]-i;else {if(i>b[m]&&i<=b[m+1])c[i]=min(i-b[m],b[m+1]-i);if(i==b[m+1]&&(m+1)<=k-1){c[i]=0;m++;}if(i>b[k-1])c[i]=c[i-1]+1;}}for(i=0;i<n;i++){if(i<n-1)printf("%d ",c[i]);elseprintf("%d\n",c[i]);}return 0; }  


原创粉丝点击