#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vi = vector<int>;
const int oo = 1e9;
const int MOD = 1e9 + 7;
const int N = 1e6 + 5;
int a, b, c, d, l, r, s[N];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> a >> b >> c >> d;
  l = r = 1e5 + 5;
  if (d > 0)
    s[l] = 3, --d;
  else if (c > 0)
    s[l] = 2, --c;
  else if (b > 0)
    s[l] = 1, --b;
  else
    s[l] = 0, --a;
  while (d) {
    if (s[l] == 3 && c > 0) {
      s[--l] = 2;
      s[--l] = 3;
      --c;
      --d;
    } else if (s[r] == 3 && c > 0) {
      s[++r] = 2;
      s[++r] = 3;
      --c;
      --d;
    } else {
      cout << "NO";
      return 0;
    }
  }
  while (c) {
    if (s[l] == 3) {
      s[--l] = 2;
      --c;
    } else if (s[r] == 3) {
      s[++r] = 2;
      --c;
    } else if (s[l] == 2 && b > 0) {
      s[--l] = 1;
      s[--l] = 2;
      --c;
      --b;
    } else if (s[r] == 2 && b > 0) {
      s[++r] = 1;
      s[++r] = 2;
      --c;
      --b;
    } else {
      cout << "NO";
      return 0;
    }
  }
  while (b) {
    if (s[l] == 2) {
      s[--l] = 1;
      --b;
    } else if (s[r] == 2) {
      s[++r] = 1;
      --b;
    } else if (s[l] == 1 && a > 0) {
      s[--l] = 0;
      s[--l] = 1;
      --b;
      --a;
    } else if (s[r] == 1 && a > 0) {
      s[++r] = 0;
      s[++r] = 1;
      --b;
      --a;
    } else {
      cout << "NO";
      return 0;
    }
  }
  while (a) {
    if (s[l] == 1) {
      s[--l] = 0;
      --a;
    } else if (s[r] == 1) {
      s[++r] = 0;
      --a;
    } else {
      cout << "NO";
      return 0;
    }
  }
  cout << "YES\n";
  for (int i = l; i <= r; ++i) cout << s[i] << " ";
  return 0;
}
