#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void amin(T &x, const T &y) {
  if (y < x) x = y;
}
template <class T>
inline void amax(T &x, const T &y) {
  if (x < y) x = y;
}
template <class Iter>
void rprintf(const char *fmt, Iter begin, Iter end) {
  for (bool sp = 0; begin != end; ++begin) {
    if (sp)
      putchar(' ');
    else
      sp = true;
    printf(fmt, *begin);
  }
  putchar('\n');
}
void MAIN() {
  int a, b, c, d;
  scanf("%d%d%d%d", &a, &b, &c, &d);
  bool yes = true;
  vector<int> ans;
  ans.reserve(a + b + c + d);
  if (a > b) {
    if (a == b + 1 && c == 0 && d == 0) {
      for (int i = 0, i_len = (a + b); i < i_len; ++i) ans.push_back(i & 1);
    } else {
      yes = false;
    }
  } else if (c < d) {
    if (c + 1 == d && a == 0 && b == 0) {
      for (int i = 0, i_len = (c + d); i < i_len; ++i)
        ans.push_back(3 - (i & 1));
    } else {
      yes = false;
    }
  } else {
    int one = b - a;
    int two = c - d;
    if (abs(one - two) > 1) {
      yes = false;
    } else {
      if (one == two + 1) {
        ans.push_back(1);
      }
      for (int i = 0, i_len = (a); i < i_len; ++i) {
        ans.push_back(0);
        ans.push_back(1);
      }
      for (int i = 0, i_len = (min(one, two)); i < i_len; ++i) {
        ans.push_back(2);
        ans.push_back(1);
      }
      for (int i = 0, i_len = (d); i < i_len; ++i) {
        ans.push_back(2);
        ans.push_back(3);
      }
      if (one + 1 == two) {
        ans.push_back(2);
      }
    }
  }
  if (yes) {
    if (count(ans.begin(), ans.end(), 0) != a) yes = false;
    if (count(ans.begin(), ans.end(), 1) != b) yes = false;
    if (count(ans.begin(), ans.end(), 2) != c) yes = false;
    if (count(ans.begin(), ans.end(), 3) != d) yes = false;
    for (int i = 0, i_len = ((int)ans.size() - 1); i < i_len; ++i)
      if (abs(ans[i] - ans[i + 1]) != 1) yes = false;
  }
  if (yes) {
    puts("YES");
    rprintf("%d", ans.begin(), ans.end());
  } else {
    puts("NO");
  }
}
int main() {
  int TC = 1;
  for (int tc = 0, tc_len = (TC); tc < tc_len; ++tc) MAIN();
  return 0;
}
