#include <bits/stdc++.h>
using namespace std;
const int mx = 1234567;
const double exp1 = 1e-6;
const int md = 1e9 + 7;
const double pi = acos(-1.0);
int ar[mx], xar[mx], uses[mx];
long long arr[mx];
int tab[1000][1000];
string st[1000];
int main() {
  int tk = 1, n, m, cs = 1;
  while (tk--) {
    int a, b, c, d;
    int cnt1, cnt2, cnt3, cnt4;
    cnt1 = cnt2 = cnt3 = cnt4 = 0;
    fill(ar, ar + mx, 100);
    scanf("%d%d%d%d", &a, &b, &c, &d);
    vector<int> v1, v2, v3, v4;
    v1.clear();
    v2.clear();
    v3.clear();
    v4.clear();
    if (a == 0 && b == 0 && c == 0 && d == 1) {
      cout << "YES" << endl;
      cout << 3 << endl;
      continue;
    }
    if (a == 0 && b == 0 && c == 0 && d > 1) {
      cout << "NO" << endl;
      continue;
    }
    for (int i = 0; i < min(a, b); i++) {
      v1.push_back(0);
      v1.push_back(1);
    }
    int a1 = a, b1 = b, c1 = c, d1 = d;
    a1 -= min(a, b);
    b1 -= min(a, b);
    cerr << a1 << " " << b1 << " " << c1 << " " << d1 << endl;
    for (int i = 0; i < min(c, d); i++) {
      v2.push_back(2);
      v2.push_back(3);
    }
    c1 -= min(c, d);
    d1 -= min(c, d);
    cerr << a1 << " " << b1 << " " << c1 << " " << d1 << endl;
    int f1, f2;
    f1 = f2 = 0;
    for (int i = 0; i < min(b1, c1); i++) {
      v3.push_back(2);
      v3.push_back(1);
    }
    int tem = b1;
    tem -= min(b1, c1);
    c1 -= min(b1, c1);
    b1 = tem;
    cerr << a1 << " " << b1 << " " << c1 << " " << d1 << endl;
    for (int i = 0; i < b1; i++) {
      v4.push_back(1);
    }
    for (int i = 0; i < v1.size(); i++) {
      v4.push_back(v1[i]);
    }
    for (int i = 0; i < a1; i++) {
      v4.push_back(0);
    }
    for (int i = 0; i < v3.size(); i++) {
      v4.push_back(v3[i]);
    }
    for (int i = 0; i < d1; i++) {
      v4.push_back(3);
    }
    for (int i = 0; i < v2.size(); i++) {
      v4.push_back(v2[i]);
    }
    for (int i = 0; i < c1; i++) {
      v4.push_back(2);
    }
    for (int i = 0; i < v4.size(); i++) {
      if (v4[i] == 0) cnt1++;
      if (v4[i] == 1) cnt2++;
      if (v4[i] == 2) cnt3++;
      if (v4[i] == 3) cnt4++;
    }
    int no = 0;
    if (v4.size() > 1 && abs(v4[1] - v4[0]) != 1) no = 1;
    for (int i = 1; i < v4.size() - 1; i++) {
      if (abs(v4[i] - v4[i - 1]) != 1 || abs(v4[i] - v4[i + 1]) != 1) no = 1;
    }
    if (!no && cnt1 == a && cnt2 == b && cnt3 == c && cnt4 == d) {
      cout << "YES" << endl;
      for (int i = 0; i < v4.size(); i++) {
        cout << v4[i] << " ";
      }
      cout << endl;
      continue;
    }
    cout << "NO" << endl;
  }
  return 0;
}
