#include <bits/stdc++.h>
using namespace std;
void cout_vector(vector<int> v) {
  for (long long unsigned i = 0; i < v.size(); i++) cout << v[i] << " ";
  cout << endl;
}
void cout_vector(vector<long long> v) {
  for (long long unsigned i = 0; i < v.size(); i++) cout << v[i] << " ";
  cout << endl;
}
int sum_vector(vector<int> v) { return accumulate(v.begin(), v.end(), 0); }
void sort_vector(vector<int> &v) { sort(v.begin(), v.end()); }
void sort_comp(vector<int> &v, bool func(int, int)) {
  sort(v.begin(), v.end(), func);
}
bool comp(int a, int b) {
  bool aend = 0;
  if (a % 2) a--, aend = 1;
  if (b % 2) b--;
  a /= 2;
  b /= 2;
  if (a == b) {
    if (aend) return 1;
    return 0;
  }
  if (a < b) return 1;
  return 0;
}
long long gcd(long long a, long long b) {
  a = abs(a);
  b = abs(b);
  while (a) {
    long long temp = a;
    a = b % a;
    b = temp;
  }
  return abs(b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
string binary(long long num) {
  string ans = "";
  do {
    ans = to_string(num % 2) + ans;
    num /= 2;
  } while (num);
  return ans;
}
const int mxn = 2e3 + 2;
const int mill = 1e6 + 3;
const long long mod = 1e9 + 7;
long long pwr(long long num, long long p) {
  long long res = 1;
  while (p > 0) {
    if (p & 1) res = (res * num) % mod;
    num = (num * num) % mod;
    p /= 2;
  }
  return res;
}
long long inverse(long long num) { return pwr(num, mod - 2); }
void solve() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  if (a > b + 1 || (a == b + 1 && c + d > 0)) {
    cout << "NO\n";
    return;
  }
  if (d > c + 1 || (d == c + 1 && a + b > 0)) {
    cout << "NO\n";
    return;
  }
  if (abs((a + c) - (b + d)) > 1) {
    cout << "NO\n";
    return;
  }
  cout << "YES\n";
  if (a + b + c + d == 1) {
    if (a == 1) {
      cout << 0;
      return;
    }
    if (b == 1) {
      cout << 1;
      return;
    }
    if (c == 1) {
      cout << 2;
      return;
    }
    if (d == 1) {
      cout << 3;
      return;
    }
  }
  vector<int> ans;
  if ((a + c) - (b + d) == 1) {
    if (a != 0) {
      while (a) {
        ans.push_back(0);
        ans.push_back(1);
        a--;
        b--;
      }
      if (b == -1) {
        ans.pop_back();
        goto fin;
      }
      while (b) {
        ans.push_back(2);
        ans.push_back(1);
        c--;
        b--;
      }
      if (b == -1) {
        ans.pop_back();
        goto fin;
      }
      while (c) {
        ans.push_back(2);
        ans.push_back(3);
        c--;
        d--;
      }
      if (d == -1) {
        ans.pop_back();
        goto fin;
      }
    } else {
      while (d) {
        ans.push_back(2);
        ans.push_back(3);
        c--;
        d--;
      }
      if (d == -1) {
        ans.pop_back();
        goto fin;
      }
      while (b) {
        ans.push_back(2);
        ans.push_back(1);
        c--;
        b--;
      }
      if (b == -1) {
        ans.pop_back();
        goto fin;
      }
    }
  } else {
    if (d != 0) {
      while (d) {
        ans.push_back(3);
        ans.push_back(2);
        d--;
        c--;
      }
      if (c == -1) {
        ans.pop_back();
        goto fin;
      }
      while (c) {
        ans.push_back(1);
        ans.push_back(2);
        c--;
        b--;
      }
      if (c == -1) {
        ans.pop_back();
        goto fin;
      }
      while (b) {
        ans.push_back(1);
        ans.push_back(0);
        a--;
        b--;
      }
      if (a == -1) {
        ans.pop_back();
        goto fin;
      }
    } else {
      while (c) {
        ans.push_back(1);
        ans.push_back(2);
        c--;
        b--;
      }
      if (c == -1) {
        ans.pop_back();
        goto fin;
      }
      while (a) {
        ans.push_back(1);
        ans.push_back(0);
        a--;
        b--;
      }
      if (a == -1) {
        ans.pop_back();
        goto fin;
      }
    }
  }
fin : {
  if (max({a, b, c, d}) == 1) {
    if (a == 1) {
      ans.push_back(0);
    }
    if (b == 1) {
      ans.push_back(1);
    }
    if (c == 1) {
      ans.push_back(2);
    }
    if (d == 1) {
      ans.push_back(3);
    }
  }
  cout_vector(ans);
}
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  int t = 1;
  while (t--) solve();
  return 0;
}
