#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
bool comparison(int a, int b) { return a > b; }
long long fast_exp(long long base, long long e) {
  long long r = 1;
  while (e > 0) {
    if (e % 2) r *= base;
    base *= base;
    e /= 2;
  }
  return r;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  if (a + b + c + d == 1) {
    cout << "YES" << endl;
    if (a) cout << 0;
    if (b) cout << 1;
    if (c) cout << 2;
    if (d) cout << 3;
    exit(0);
  }
  vector<int> v(1, -1), w(1, -1), e(1, -1);
  for (int i = 0; i < min(a, b); i++) {
    v.push_back(0);
    v.push_back(1);
  }
  int x = min(a, b);
  a -= x;
  b -= x;
  for (int i = 0; i < min(c, d); i++) {
    w.push_back(2);
    w.push_back(3);
  }
  x = min(c, d);
  c -= x;
  d -= x;
  vector<int> ans(1, -1);
  for (int i = 0; i < (int)v.size(); i++) {
    if (v[i] >= 0) {
      ans.push_back(v[i]);
    }
  }
  for (int i = 0; i < min(c, b); i++) {
    ans.push_back(2);
    ans.push_back(1);
  }
  x = min(c, b);
  c -= x;
  b -= x;
  for (int i = 0; i < (int)w.size(); i++) {
    if (w[i] >= 0) ans.push_back(w[i]);
  }
  if (ans[1] == 2 && d) {
    ans[0] = 3;
    d--;
  } else if (ans[1] == 2 && b) {
    ans[0] = 1;
    b--;
  } else if (ans[1] == 0 && b) {
    ans[0] = 1;
    b--;
  }
  if (ans.back() == 1 && c) {
    ans.push_back(2);
    c--;
  } else if (ans.back() == 3 && c) {
    ans.push_back(2);
    c--;
  } else if (ans.back() == 1 && a) {
    ans.push_back(0);
    a--;
  }
  if (a + b + c + d != 0) {
    cout << "NO" << endl;
  } else {
    int q = 0;
    for (int i = 1; i < (int)ans.size(); i++) {
      if (ans[i - 1] == -1)
        continue;
      else if (abs(ans[i - 1] - ans[i]) != 1) {
        q = 1;
        break;
      }
    }
    if (q)
      cout << "NO" << endl;
    else {
      cout << "YES" << endl;
      for (auto u : ans) {
        if (u != -1) cout << u << " ";
      }
    }
  }
}
