#include <bits/stdc++.h>
const long long MOD = 1e9 + 7;
using pii = std::pair<long long, long long>;
using namespace std;
long long a, b, c, d;
class DBeautifulSequence {
 public:
  void solve(std::istream& in, std::ostream& out) {
    in >> a >> b >> c >> d;
    if (a == b + 1 && !c && !d) {
      out << "YES\n";
      out << 0 << " ";
      for (long long i = (0); i < (b); i++) out << 1 << " " << 0 << " ";
      out << "\n";
      return;
    }
    if (d == c + 1 && !a && !b) {
      out << "YES\n";
      out << 3 << " ";
      for (long long i = (0); i < (c); i++) out << 2 << " " << 3 << " ";
      out << "\n";
      return;
    }
    if (a > b || d > c) {
      out << "NO\n";
      return;
    }
    long long diff = abs((b - a) - (c - d));
    if (diff > 1) {
      out << "NO\n";
      return;
    }
    vector<long long> left, right;
    if (diff == 1) {
      if ((b - a) > (c - d)) {
        left.push_back(1);
        b--;
      } else {
        right.push_back(2);
        c--;
      }
    }
    for (long long i = (0); i < (a); i++) {
      left.push_back(0);
      left.push_back(1);
      b--;
    }
    for (long long i = (0); i < (d); i++) {
      right.push_back(3);
      right.push_back(2);
      c--;
    }
    assert(b == c);
    reverse(right.begin(), right.end());
    out << "YES\n";
    for (auto v : left) out << v << " ";
    for (long long i = (0); i < (b); i++) out << 2 << " " << 1 << " ";
    for (auto v : right) out << v << " ";
    out << "\n";
  }
};
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  DBeautifulSequence solver;
  std::istream& in(std::cin);
  std::ostream& out(std::cout);
  solver.solve(in, out);
  return 0;
}
