#include <bits/stdc++.h>
using namespace std;
int main(void) {
  vector<int> cnt(4);
  for (auto& val : cnt) cin >> val;
  if (cnt[1] + cnt[3] < cnt[2] + cnt[0] - 1 ||
      cnt[1] + cnt[3] > cnt[2] + cnt[0] + 1) {
    cout << "NO" << endl;
    exit(0);
  }
  vector<int> ans(cnt[0] + cnt[1] + cnt[2] + cnt[3]);
  if (cnt[1] + cnt[3] <= cnt[2] + cnt[0]) {
    int npos = 0, cnt_0 = 0, cnt_2 = 0;
    while (cnt_0 < cnt[0]) ans[npos] = 0, cnt_0++, npos += 2;
    while (cnt_2 < cnt[2]) ans[npos] = 2, cnt_2++, npos += 2;
    npos = 1;
    int cnt_1 = 0, cnt_3 = 0;
    while (cnt_1 < cnt[1]) ans[npos] = 1, cnt_1++, npos += 2;
    while (cnt_3 < cnt[3]) ans[npos] = 3, cnt_3++, npos += 2;
  } else {
    int npos = 1, cnt_0 = 0, cnt_2 = 0;
    while (cnt_0 < cnt[0]) ans[npos] = 0, cnt_0++, npos += 2;
    while (cnt_2 < cnt[2]) ans[npos] = 2, cnt_2++, npos += 2;
    npos = 0;
    int cnt_1 = 0, cnt_3 = 0;
    while (cnt_1 < cnt[1]) ans[npos] = 1, cnt_1++, npos += 2;
    while (cnt_3 < cnt[3]) ans[npos] = 3, cnt_3++, npos += 2;
  }
  bool error = false;
  for (int i = 1; i < ans.size(); i++)
    error = abs(ans[i] - ans[i - 1]) == 1 ? error : true;
  cout << (error ? "NO" : "YES") << endl;
  if (!error)
    for (auto val : ans) cout << val << " ";
  return 0;
}
