#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a, b, c, d;
vector<int> v;
int main() {
  ios_base ::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  cin >> a >> b >> c >> d;
  if (a + b == 0) {
    if (c == d + 1) {
      cout << "YES" << endl;
      for (int i = 0; i < d; i++) cout << "2 3 ";
      cout << "2";
    } else if (d == c + 1) {
      cout << "YES" << endl;
      for (int i = 0; i < c; i++) cout << "3 2 ";
      cout << "3 ";
    } else if (d == c) {
      cout << "YES" << endl;
      for (int i = 0; i < d; i++) cout << "2 3 ";
    } else
      cout << "NO";
  } else if (c + d == 0) {
    if (a == b + 1) {
      cout << "YES" << endl;
      for (int i = 0; i < b; i++) cout << "0 1 ";
      cout << "0";
    } else if (b == a + 1) {
      cout << "YES" << endl;
      for (int i = 0; i < a; i++) cout << "1 0 ";
      cout << "1 ";
    } else if (a == b) {
      cout << "YES" << endl;
      for (int i = 0; i < b; i++) cout << "0 1 ";
    } else
      cout << "NO";
  } else {
    if (b < a || c < d)
      cout << "NO";
    else if (abs((b - a) - (c - d)) > 1)
      cout << "NO";
    else {
      cout << "YES" << endl;
      for (int i = 0; i < a; i++) {
        v.push_back(0);
        v.push_back(1);
      }
      for (int i = 0; i < d; i++) {
        v.push_back(2);
        v.push_back(3);
      }
      b -= a;
      c -= d;
      if (b > c) {
        for (int i = 0; i < c; i++) cout << "1 2 ";
        cout << "1 ";
        for (auto x : v) cout << x << " ";
      } else if (b < c) {
        for (auto x : v) cout << x << " ";
        for (int i = 0; i < b; i++) cout << "2 1 ";
        cout << "2";
      } else {
        for (auto x : v) cout << x << " ";
        for (int i = 0; i < b; i++) cout << "2 1 ";
      }
    }
  }
  return 0;
}
