#include <bits/stdc++.h>
using namespace std;
long long n, a[1000000];
vector<long long> v, q;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    if (a[i] == 0) {
      v.push_back(i);
      q.push_back(-i);
    }
  }
  sort(q.begin(), q.end());
  for (int i = 0; i < n; i++) {
    long long x = lower_bound(v.begin(), v.end(), i) - v.begin();
    long long y = lower_bound(q.begin(), q.end(), -i) - q.begin();
    if (x != v.size() && y != q.size()) {
      cout << min(abs(v[x] - i), abs(-q[y] - i)) << ' ';
    } else if (x != v.size()) {
      cout << abs(v[x] - i) << ' ';
    } else {
      cout << abs(-q[y] - i) << ' ';
    }
  }
  return 0;
}
