#include <bits/stdc++.h>
using namespace std;
int a, b, c, d;
deque<int> st, dr, mij;
int main() {
  cin >> a >> b >> c >> d;
  if (a == 0 && b == 0) {
    if (d > c) {
      st.push_back(3);
      d--;
    }
  } else if (c == 0 && d == 0) {
    if (a > b) {
      a--;
      dr.push_back(0);
    }
  }
  while (a > 0 && b > 0) {
    st.push_back(0);
    st.push_back(1);
    a--;
    b--;
  }
  if (b == 0 && a > 0) {
    cout << "NO";
    return 0;
  }
  while (c > 0 && d > 0) {
    dr.push_back(2);
    dr.push_back(3);
    c--, d--;
  }
  if (c == 0 && d > 0) {
    cout << "NO";
    return 0;
  }
  if (b > c) {
    st.push_front(1);
    b--;
  } else if (c > b) {
    dr.push_back(2);
    c--;
  }
  while (b > 0 && c > 0) {
    mij.push_back(2);
    mij.push_back(1);
    b--, c--;
  }
  if (a + b + c + d > 0) {
    cout << "NO";
    return 0;
  } else {
    cout << "YES\n";
    for (auto it : st) cout << it << " ";
    for (auto it : mij) cout << it << " ";
    for (auto it : dr) cout << it << " ";
  }
  return 0;
}
