#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就可以满足题目要求



京公网安备 11010502036488号