c的思维硬解
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
int main()
{
int i,l,n,count,k;
cin>>n;
k=0;
count=0;
vector[HTML_REMOVED]a(n);
for(i=0;i[HTML_REMOVED]>a[i];
}
for(i=0;i[HTML_REMOVED]b(count);
for(i=0;i<n;i)
{
if(a[i]==0)
{ b[k]=i;
k;
}
}
l=0;
bool shouldContinue = true;
if(count==1)
{
for(i=0;i<n;i++)
{
cout<<abs(b[0]-i)<<” “;
}
}
else{
for(i=0;i<n && shouldContinue;i++)
{
while(abs(b[l]-i)<abs(b[l+1]-i))
{
cout<<abs(b[l]-i)<<" ";
i++;
}
cout<<abs(b[l+1]-i)<<" ";
if(l!=(count-2))
{
l++;
}else
{ shouldContinue = false;
i++;
break;}
}
while(i<n)
{
cout << abs(b[l+1] - i) << " ";
i++;
}
}
return 0;
}