LQDOJ Contest #6 - Bài 2 - Đường Đi Ngắn Nhất

Xem PDF

Điểm: 1400 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: SHORTEST.INP Output: SHORTEST.OUT

Sau khi nhớ về khoảng thời gian đẹp đẽ ấy, shiba lại nhớ lại không gian lãng mạn lúc hai người gặp nhau. Có không gian thì phải có thời gian chứ, đúng không?..."

Do quá nhớ cô ấy, shiba quyết định sẽ đi tìm lại cô ấy ở ngoài đời để trực tiếp nói chuyện. Cách nhanh nhất là tìm đến nhà cô ấy. Cũng may, cô ấy block hết mạng xã hội nhưng không chặn số điện thoại. May mắn hơn nữa là shiba đã gọi điện được cho cô ấy hẹn cô ấy đi chơi và được cô ấy đồng ý.

Quãng thời gian yêu nhau, shiba không biết bao nhiêu lần đi đến nhà cô ấy nên đã thuộc địa chỉ nhà cô ấy ở đâu. Coi thành phố nơi shiba và cô ấy đang sống là một mặt phẳng toạ độ, nhà của shiba ở toạ độ \((1,1)\) còn nhà cô ấy ở toạ độ \((n,m)\). Mỗi bước di chuyển, shiba có thể đi trái, đi phải, đi lên hoặc đi xuống (không được đi chéo).

Do quãng thời gian đó, shiba chỉ lo đi chơi với cô ấy, nên không nhớ được đoạn đường ngắn nhất đến nhà cô ấy. Để tiết kiệm chi phí nhiên liệu, cậu ấy cần tìm độ dài của đường đi ngắn nhất tới nhà cô ấy. Hơn nữa, shiba cũng lo có thể sẽ tắc đường làm ảnh hưởng tới chuyện "quan trọng" này của cậu ấy, nên cậu ấy muốn tìm thêm vài con đường cũng có độ dài ngắn nhất như thế. Tuy nhiên cậu ấy đang mải chọn quà với tương tư người ấy nên không thể làm được chuyện "đơn giản" này, nên cậu ấy đã nhờ _minhduc mang chiếc MacBook M2 Pro đi tính hộ. Ngặt nỗi lúc đó _minhduc cũng đang bận một vài chuyện nên không thể làm được chuyện này.

Yêu cầu: Giả sử bạn là bạn thân của _minhduc, được _minhduc chỉ rõ mọi đường từ nhà của shiba tới nhà cô ấy và bạn được _minhduc nhờ ~với vài cái phong bì~. Hãy tính giúp _minhduc đường đi ngắn nhất và số đường đi có độ dài như thế. Do độ dài đường đi ngắn nhất và số lượng đường đi có thể rất lớn, bạn cần in ra chúng sau khi chia lấy dư cho \(10^9+7\).

Input

  • Chứa hai số nguyên dương lần lượt là \(n\)\(m\) (\(1 \le n,m \le 5 \times 10^7\)).

Output

  • In ra lần lượt là độ dài đường đi ngắn nhất và số đường đi có độ dài như vậy, cả hai số cần được in ra sau khi chia lấy dư cho \(10^9+7\).

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): Có \(n,m \le 10\).
  • Subtask \(2\) (\(30\%\) số điểm): Có \(n,m \le 1000\).
  • Subtask \(3\) (\(20\%\) số điểm): Có \(n \times m \le 10^7\).
  • Subtask \(4\) (\(20\%\) số điểm): Có \(n,m \le 10^7\).
  • Subtask \(5\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

SHORTEST.INP
2 3
SHORTEST.OUT
4 3
Note

Ta có sẽ đường đi ngắn nhất là \(4\) và có \(3\) đường đi như sau:
\(1\): \((1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3)\)
\(2\): \((1,1) \rightarrow (1,2) \rightarrow (2,2) \rightarrow (2,3)\)
\(3\): \((1,1) \rightarrow (2,1) \rightarrow (2,2) \rightarrow (2,3)\)

Test 2

SHORTEST.INP
5 7
SHORTEST.OUT
11 210

Bình luận