#include <bits/stdc++.h>
using namespace std;
const double inf = 2e9;
const int MAXN = 2e5 + 10;
long long mod = 998244353;
vector<int> ans;
bool solve1(int j, int typenow, vector<int> &abc) {
  int summ = abc[0] + abc[1] + abc[2] + abc[3];
  if (abc[typenow] == 0 && summ != 0) return false;
  if (abc[typenow] == 1 && summ == 1) {
    ans[j] = typenow;
    abc[typenow]--;
    return true;
  }
  abc[typenow]--;
  ans[j] = typenow;
  if (typenow == 0) {
    return solve1(j + 1, typenow + 1, abc);
  } else if (typenow == 3) {
    return solve1(j + 1, typenow - 1, abc);
  } else {
    if (typenow == 1 && abc[typenow - 1] != 0)
      return solve1(j + 1, typenow - 1, abc);
    else if (typenow == 2 && abc[typenow + 1] != 0)
      return solve1(j + 1, typenow + 1, abc);
    else {
      if (typenow == 1)
        return solve1(j + 1, typenow + 1, abc);
      else if (typenow == 2)
        return solve1(j + 1, typenow - 1, abc);
    }
  }
}
void solve() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  ans.resize(a + b + c + d);
  vector<int> abc(4);
  abc[0] = a;
  abc[1] = b;
  abc[2] = c;
  abc[3] = d;
  for (int i = 0; i < 4; i++) {
    abc[0] = a;
    abc[1] = b;
    abc[2] = c;
    abc[3] = d;
    if (solve1(0, i, abc)) {
      cout << "YES" << endl;
      for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
      }
      return;
    }
  }
  cout << "NO" << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n = 1;
  solve();
  return 0;
}
