JOI 2017 - Cultivation

Xem PDF



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, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2600 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trong năm 21XX, cư dân hành tinh IOI dự định di cư đến một hành tinh mới được phát hiện. Trên hành tinh mới có một cánh đồng hình chữ nhật gồm \(R\) hàng và \(C\) cột. Các cột chạy theo hướng nam-bắc, còn các hàng chạy theo hướng đông-tây. Ô ở hàng thứ \(i\) tính từ phía bắc và cột thứ \(j\) tính từ phía tây được gọi là ô \((i,j)\). Góc tây bắc là ô \((1,1)\) và góc đông nam là ô \((R,C)\).

Mỗi năm, cư dân hành tinh IOI chọn một hướng gió thổi qua cánh đồng: đông, tây, nam hoặc bắc.

Để canh tác trên hành tinh mới, họ sẽ trồng "cỏ JOI" trên toàn bộ cánh đồng. Vào mùa xuân năm đầu tiên sau khi di cư, cỏ JOI đã mọc ở \(N\) ô.

Phạm vi của cỏ JOI được mở rộng nhờ gió. Mỗi mùa hè, hạt của cỏ JOI bị gió thổi theo hướng đã chọn, di chuyển đúng một ô rồi rơi xuống. Nếu hạt rơi vào một ô thuộc cánh đồng chưa có cỏ JOI, ô đó sẽ có cỏ JOI vào mùa xuân năm sau. Một khi đã có cỏ JOI, ô đó sẽ luôn có cỏ JOI trong những năm tiếp theo.

Hãy chọn hướng gió thích hợp qua từng năm để toàn bộ cánh đồng có cỏ JOI sớm nhất có thể.

Yêu cầu

Tính số năm nhỏ nhất cần thiết để tất cả các ô trên cánh đồng đều có cỏ JOI.

Dữ liệu vào

  • Dòng đầu gồm hai số nguyên \(R,C\), lần lượt là số hàng và số cột của cánh đồng.
  • Dòng thứ hai chứa số nguyên \(N\), là số ô đã có cỏ JOI vào mùa xuân năm đầu tiên.
  • Trong \(N\) dòng tiếp theo, dòng thứ \(i\) gồm hai số nguyên \(S_i,E_i\), cho biết ô \((S_i,E_i)\) đã có cỏ JOI vào mùa xuân năm đầu tiên.

Dữ liệu ra

In ra một số nguyên duy nhất: số năm nhỏ nhất cần thiết để toàn bộ cánh đồng có cỏ JOI.

Ràng buộc

  • \(1 \le N \le 300\).
  • \(1 \le R,C \le 1\,000\,000\,000\).
  • \(1 \le S_i \le R\) với mọi \(1 \le i \le N\).
  • \(1 \le E_i \le C\) với mọi \(1 \le i \le N\).
  • Vào mùa xuân năm đầu tiên, vẫn có ít nhất một ô trên cánh đồng chưa có cỏ JOI.
  • \((S_i,E_i) \ne (S_j,E_j)\) với mọi \(1 \le i<j \le N\).

Phân nhóm

  1. Subtask 1 (5 điểm): \(R \le 4\), \(C \le 4\).
  2. Subtask 2 (10 điểm): \(R \le 40\), \(C \le 40\).
  3. Subtask 3 (15 điểm): \(R \le 40\).
  4. Subtask 4 (30 điểm): \(N \le 25\).
  5. Subtask 5 (20 điểm): \(N \le 100\).
  6. Subtask 6 (20 điểm): Không có ràng buộc bổ sung.

Giới hạn

  • Thời gian: 2 giây.
  • Bộ nhớ: 256 MB.

Ví dụ

Ví dụ 1

Input
3 4
3
1 2
1 4
2 3
Output
3
Giải thích

Ban đầu, ba ô \((1,2)\), \((1,4)\)\((2,3)\) có cỏ JOI. Nếu hướng gió trong ba năm đầu lần lượt là tây, nam, nam thì sau ba năm mọi ô đều có cỏ. Số năm mà từng ô bắt đầu có cỏ là:

1 0 1 0
2 1 0 2
3 2 2 3

Không thể phủ kín cánh đồng trong ít hơn ba năm.

Ví dụ 2

Input
4 4
4
1 1
1 4
4 1
4 4
Output
4

Bình luận

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

Không có bình luận nào.

Kỳ thi: