Tìm số dãy nhị phân ~s~ thỏa mãn tất cả các điều kiện sau:
~s~ chứa ít nhất ~1~ chữ số ~0~ và ~1~ chữ số ~1~.
~s~ chứa tối đa ~a_0~ chữ số ~0~ và ~a_1~ chữ số ~1~.
Khi chia ~s~ thành các đoạn liên tiếp chứa toàn chữ số ~0~ hoặc ~1~, độ dài các dãy chứa toàn chữ số ~0~ không nhỏ hơn ~b_0~ và độ dài các dãy chứa toàn chữ số ~1~ không nhỏ hơn ~b_1~.
Ví dụ với ~b_0 = 3~ và ~b_1 = 2~ thì:
~1100001111000~ = [~11~, ~0000~, ~1111~, ~000~] là dãy thoả mãn
~00011100~ = [~000~, ~111~, ~00~] không thoả mãn, do đoạn con ~00~ có độ dài nhỏ hơn ~b_0~.
In ra kết quả ~\text{mod}~ ~10^9 + 7~.
Input
Dòng đầu tiên gồm hai số ~a_0~ và ~a_1~ (~1 \leq a_0, a_1 \leq 10^6~), số chữ số tối đa của ~0~ và ~1~.
Dòng thứ hai gồm hai số ~b_0~ và ~b_1~ (~1 \leq b_0 \leq a_0~, ~1 \leq b_1 \leq a_1~).
Output
Ghi ra một số duy nhất là đáp án của đề bài.
Scoring
Subtask | Điểm | Giới hạn |
---|---|---|
1 | ~10~ | ~1 \leq a_0, a_1 \leq 10~ |
2 | ~20~ | ~1 \leq a_0, a_1 \leq 300~ |
3 | ~20~ | ~1 \leq a_0, a_1 \leq 3000~ |
4 | ~50~ | Không có ràng buộc gì thêm |
Sample Input 1
7 13
7 12
Sample Output 1
4
Bình luận
There is an edge case which is not tested in the test cases:
This might cause a suboptimal solution to pass