#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500100;
int a[MAXN];
int b[MAXN];
int get_l(int n) {
  int mxl = 0;
  int ini = 0, fin = 0;
  b[0] = a[0];
  a[n] = a[n - 1];
  for (int i = 1; i <= n; i++) {
    b[i] = a[i];
    if (a[i] != a[i - 1]) {
      fin = i;
    } else {
      if (ini != fin) {
        int l = fin - ini + 1;
        if (l % 2 == 0) {
          mxl = max(mxl, l / 2 - 1);
          for (int k = 1, j = ini; j <= fin; j++, k++) {
            b[j] = (k <= l / 2 ? a[ini] : a[fin]);
          }
        } else if (l % 2 != 0) {
          mxl = max(mxl, l / 2);
          for (int j = ini; j <= fin; j++) {
            b[j] = a[ini];
          }
        }
      }
      ini = i;
      fin = i;
    }
  }
  return mxl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  cout << get_l(n) << '\n';
  for (int i = 0; i < n; i++) {
    if (i > 0) {
      cout << ' ';
    }
    cout << b[i];
  }
  cout << '\n';
}
