#include //#include using namespace std; //using namespace atcoder; using ll = long long; //using mint = modint998244353; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); /* Dをソートして差がT以下のグループをまとめる。これらは一塊として良い。 2つのグループを繋げる時、崖を作るか逆転を作るかはX, Yの大小で決める。 繋げる回数が少ない方が良いので大きいグループから繋げていく方が良い。 */ ll N, T, X, Y, now, cnt, S=0; cin >> N >> T >> X >> Y; X = min(X, Y); vector D(N), v, ans(N+1); for (int i=0; i> D[i]; sort(D.begin(), D.end()); now = D[0]; cnt = 1; for (int i=1; i