分三种情况:

  1. 全部在第二个区间里
  2. 全部在第一个区间里
  3. 横跨两个区间
#include<iostream>
#include<algorithm>
using namespace std;

signed main(){
    int offset, n, len1, len2;
    while(cin >> offset >> n >> len1 >> len2){
        if(offset >= len1){
            cout << len1 << " " << len1 << " " << 
            min(offset - len1, len2) << " " << min(offset - len1 + n, len2) << endl;
        }
        else if(offset + n <= len1){
            cout << offset << " " << offset + n << " " << 0 << " " << 0 << endl;
        }
        else{
            int t = len1 - offset;
            cout << offset << " " << len1 << " " << 0 << " " << min(t, len2) << endl;
        }
    }
}