CSES - Grid Paths | Đường đi trên lưới

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một lưới \(n \times n\) với ô vuông trên cùng bên trái là \((1,1)\) và ô vuông dưới cùng bên phải là \((n, n)\).

Nhiệm vụ của bạn là di chuyển từ ô trên cùng bên trái sang ô dưới cùng bên phải. Trên mỗi bước, bạn có thể di chuyển một ô sang phải hoặc xuống dưới. Ngoài ra, có \(m\) bẫy trong lưới. Bạn không thể di chuyển đến một ô có bẫy.

Tổng số cách có thể di chuyển được là bao nhiêu?

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(m\): kích thước mảng và số lượng bẫy
  • \(m\) dòng tiếp theo mô tả các bẫy. Mỗi dòng chứa hai số nguyên \(y\)\(x\): vị trí của một cái bẫy
  • Dữ liệu đảm bảo không có bẫy trong hình vuông trên cùng bên trái và dưới cùng bên phải

Constraints

  • \(1 \leq n \leq 10^6\)
  • \(1 \leq m \leq 1000\)
  • \(1 \leq y, x \leq n\)

Output

  • Một dòng duy nhất chứa tổng số cách di chuyển sau khi modulo cho \(10^9 + 7\)

Example

Test 1

Input
3 1
2 2
Output
2

Bình luận (1)

Mới nhất
Tải bình luận...