#include <bits/stdc++.h>
using namespace std;
bool solve(int a, int b, int c, int d) {
  if (a - b > 1 || d - c > 1) return false;
  if (a - b > 0 && (c + d > 0)) return false;
  if (d - c > 0 && (a + b > 0)) return false;
  vector<int> ans;
  if (a + b == 0) {
    if (abs(c - d) > 1) return false;
    if (d > c) ans.push_back(3);
    for (int i = 0; i < min(c, d); i++) ans.push_back(2), ans.push_back(3);
    if (d < c) ans.push_back(2);
  } else if (c + d == 0) {
    if (abs(a - b) > 1) return false;
    if (b > a) ans.push_back(1);
    for (int i = 0; i < min(a, b); i++) ans.push_back(0), ans.push_back(1);
    if (b < a) ans.push_back(0);
  } else {
    int x = b - a, y = c - d;
    if (abs(x - y) > 1) return false;
    if (x > y) ans.push_back(1);
    for (int i = 0; i < a; i++) ans.push_back(0), ans.push_back(1);
    for (int i = 0; i < min(x, y); i++) ans.push_back(2), ans.push_back(1);
    for (int i = 0; i < d; i++) ans.push_back(2), ans.push_back(3);
    if (y > x) ans.push_back(2);
  }
  cout << "YES" << endl;
  for (int i = 0; i < ans.size(); i++) cout << (i ? " " : "") << ans[i];
  cout << endl;
  return true;
}
int main(int argc, char *argv[]) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  if (!solve(a, b, c, d)) cout << "NO" << endl;
  return 0;
}
