#include <bits/stdc++.h>
using namespace std;
const long long maxn = 10e5 + 10;
const long double SADAT = 7.84e-17;
const long long INF = 1e9;
const long long mod = 1e9 + 7;
const long double PI = 4 * atan((long double)1);
template <class T>
bool checkmin(T &a, T b) {
  return a > b ? a = b, 1 : 0;
}
long long pw(long long a, long long b) {
  return (!b ? 1
             : (b & 1 ? a * pw(a * a % mod, b / 2) % mod
                      : pw(a * a % mod, b / 2) % mod));
}
int a, b, c, d;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> a >> b >> c >> d;
  if (a == b + 1 and c == d and c == 0) {
    cout << "YES" << '\n';
    for (int i = 0; i < b; i++) {
      cout << "0 1 ";
    }
    cout << '0';
    return (0);
  }
  if (d == c + 1 and a == b and b == 0) {
    cout << "YES" << '\n';
    for (int i = 0; i < c; i++) {
      cout << "3 2 ";
    }
    cout << '3';
    return (0);
  }
  if (a > b or d > c or abs((b - a) - (c - d)) > 1) {
    cout << "NO";
    return (0);
    ;
  }
  cout << "YES" << '\n';
  if (b - a == c - d and c - d == 0) {
    for (int i = 0; i < a; i++) {
      cout << "0 1 ";
    }
    for (int i = 0; i < d; i++) {
      cout << "2 3 ";
    }
  } else if (b - a == c - d) {
    for (int i = 0; i < a; i++) {
      cout << "0 1 ";
    }
    for (int i = 0; i < b - a; i++) {
      cout << "2 1 ";
    }
    for (int i = 0; i < d; i++) {
      cout << "2 3 ";
    }
  } else if (b - a > c - d) {
    for (int i = 0; i < d; i++) {
      cout << "3 2 ";
    }
    for (int i = 0; i < a; i++) {
      cout << "1 0 ";
    }
    cout << "1 ";
    for (int i = 0; i < c - d; i++) {
      cout << "2 1 ";
    }
  } else {
    for (int i = 0; i < a; i++) {
      cout << "0 1 ";
    }
    for (int i = 0; i < d; i++) {
      cout << "2 3 ";
    }
    cout << "2 ";
    for (int i = 0; i < b - a; i++) {
      cout << "1 2 ";
    }
  }
  cout << '\n';
  return (0);
}
