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