#include <bits/stdc++.h>
using namespace std;
class DebugStream {
} LOG;
template <typename T>
DebugStream &operator<<(DebugStream &s, const T &) {
  return s;
}
mt19937 rnd(time(NULL));
const int maxN = 1e5 + 9, maxV = 1e6 + 9, MOD = 1e9 + 7, SQ = 335, lg = 20,
          bs = 29;
int buc[4];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  for (int i = 0; i < 4; i++) cin >> buc[i];
  int delta1 = buc[1] - buc[0], delta2 = buc[2] - buc[3];
  if (delta1 < -1 || delta2 < -1 || (delta1 == -1 && delta2 == -1)) {
    cout << "NO\n";
    return 0;
  }
  if (delta1 == -1) {
    if (buc[2] || buc[3]) {
      cout << "NO\n";
      return 0;
    }
    cout << "YES\n";
    while (buc[0] || buc[1]) {
      if (buc[0]) cout << "0 ", buc[0]--;
      if (buc[1]) cout << "1 ", buc[1]--;
    }
    cout << '\n';
    return 0;
  }
  if (delta2 == -1) {
    if (buc[0] || buc[1]) {
      cout << "NO\n";
      return 0;
    }
    cout << "YES\n";
    while (buc[3] || buc[2]) {
      if (buc[3]) cout << "3 ", buc[3]--;
      if (buc[2]) cout << "2 ", buc[2]--;
    }
    cout << '\n';
    return 0;
  }
  if (abs(delta1 - delta2) > 1) {
    cout << "NO\n";
    return 0;
  }
  cout << "YES\n";
  if (delta1 > delta2)
    cout << "1 ", buc[1]--;
  else if (delta2 > delta1)
    buc[2]--;
  while (buc[0]) {
    cout << "0 1 ";
    buc[0]--, buc[1]--;
  }
  while (buc[1]) {
    cout << "2 1 ";
    buc[1]--, buc[2]--;
  }
  while (buc[2]) {
    cout << "2 3 ";
    buc[2]--, buc[3]--;
  }
  if (delta2 > delta1) cout << "2 ";
  cout << '\n';
}
