#include <iostream>
using namespace std;

int main() {
    int offset, n, l1, l2;
    while (cin >> offset >> n >> l1 >> l2) {
        int start1 = min(offset, l1);
        int end1 = min(start1 + n, l1);
        n -= end1 - start1;
        int start2 = min(max(offset - l1, 0), l2);
        int end2 = min(l2, start2 + n); 

        cout << start1 << ' ' << end1 << ' ' << start2 << ' ' << end2 << endl;
    }
}

提炼一下题目要求,不需要分情况讨论各种绕,直接计算,四个数字用0和列表长度截止一下,保证0 <= start1, end1<= l1, 0<= start2,end2 <= l2就可以满足题目要求