#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  int arr[4];
  arr[0] = a;
  arr[1] = b;
  arr[2] = c;
  arr[3] = d;
  int cmax = b;
  if (c > b) cmax = c;
  int k = 0;
  if (b >= a) k++;
  if (c >= d) k++;
  if (a + c >= b) k++;
  if (b + d >= c) k++;
  int m = a + c - b - d;
  int l = b + d - c - a;
  if (a == 0 || b == 0 || c == 0 || d == 0) {
    int ind = 0;
    int brr[3], crr[3];
    for (int u = 0; u < 4; u++) {
      if (arr[u] != 0) {
        brr[ind++] = arr[u];
        crr[ind - 1] = u;
      }
    }
    if (ind == 1 || ind == 2) {
      if (ind == 1 && brr[0] == 1) {
        cout << "YES" << endl;
        cout << crr[0];
        return 0;
      } else if (ind == 1 && brr[0] != 1) {
        cout << "NO";
        return 0;
      } else {
        if (crr[1] - crr[0] > 1) {
          cout << "NO";
          return 0;
        } else {
          if (abs(brr[1] - brr[0]) > 1) {
            cout << "NO";
            return 0;
          } else {
            cout << "YES" << endl;
            int ai = brr[0];
            int bi = brr[1];
            int ci = ai, ji = crr[1], ki = crr[0];
            if (bi < ai) {
              ci = bi;
              ji = crr[0];
              ki = crr[1];
            }
            for (int i = 0; i < ci; i++) {
              cout << ji << " " << ki << " ";
            }
            if (ai != bi) {
              cout << ji;
            }
            return 0;
          }
        }
      }
    } else {
      int j = brr[0] + brr[2];
      int u = brr[1];
      for (int i = 1; i < 3; i++)
        if (abs(crr[i] - crr[i - 1]) > 1) {
          cout << "NO";
          return 0;
        }
      if (abs(u - j) > 1) {
        cout << "NO";
        return 0;
      } else {
        int ii = 0;
        int i = 0;
        cout << "YES" << endl;
        if (u - j == 1) {
          cout << crr[1] << " ";
          brr[1]--;
        }
        while (ii < 2) {
          while (true) {
            if (brr[i] == 0) break;
            cout << crr[i] << " ";
            brr[i]--;
            if (brr[i] == 0) break;
            if (brr[i + 1] == 0) break;
            cout << crr[i + 1] << " ";
            brr[i + 1]--;
          }
          ii++;
          i++;
        }
        if (brr[2] == 1) {
          cout << crr[2];
        } else if (brr[1] == 1) {
          cout << crr[1];
        }
        return 0;
      }
    }
  } else if (k < 4)
    cout << "NO";
  else if (abs(m) > 1)
    cout << "NO";
  else if (abs(l) > 1)
    cout << "NO";
  else {
    cout << "YES" << endl;
    int r = 0, i = 1;
    bool f = false;
    if ((c - d) < (b - a)) {
      r = 1;
      i = 0;
      f = true;
    }
    int ii = 0;
    while (ii < 3) {
      while (true) {
        cout << r << " ";
        arr[r]--;
        if (arr[r] == 0) break;
        cout << i << " ";
        arr[i]--;
        if (arr[i] == 0) break;
      }
      ii++;
      if (f) {
        i = 2;
        f = !f;
      } else {
        i++;
        r++;
      }
    }
    if (arr[2] == 1) cout << "2";
    if (arr[3] == 1) cout << "3";
  }
}
