#include <bits/stdc++.h>
using namespace std;
const int N = 5e4 + 5;
long long a[4];
long long res = 1e18;
vector<int> lft, rgt;
void HalfDead() {
  int zero, one, two, three;
  cin >> zero >> one >> two >> three;
  if (one + 1 == zero) {
    if (two == 0 and three == 0) {
      cout << "YES" << endl;
      while (one) {
        cout << "0 1 ";
        one--;
      }
      cout << 0 << endl;
    } else {
      cout << "NO" << endl;
    }
    return;
  }
  if (two + 1 == three) {
    if (zero == 0 and one == 0) {
      cout << "YES" << endl;
      cout << "3 ";
      while (two) {
        cout << "2 3 ";
        two--;
      }
      cout << endl;
    } else {
      cout << "NO" << endl;
    }
    return;
  }
  if (one < zero or two < three) {
    cout << "NO" << endl;
    return;
  }
  while (zero) {
    lft.push_back(0);
    lft.push_back(1);
    zero--;
    one--;
  }
  while (three) {
    rgt.push_back(2);
    rgt.push_back(3);
    two--;
    three--;
  }
  while (two > 0 and one > 0) {
    lft.push_back(2);
    lft.push_back(1);
    two--;
    one--;
  }
  if (two > 1 or one > 1) {
    cout << "NO" << endl;
    return;
  }
  cout << "YES" << endl;
  if (one)
    cout << "1 ";
  else if (two)
    rgt.push_back(2);
  for (int x : lft) cout << x << " ";
  for (int x : rgt) cout << x << " ";
  cout << endl;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int tc;
  HalfDead();
  return 0;
}
