Cắt giấy (C.P.VNOI 2021 LMH R6)
Xem PDF
Điểm:
2000
Thời gian:
1.0s
Bộ nhớ:
488M
Input:
bàn phím
Output:
màn hình
Cho một mảnh giấy hình vuông kích thước \(2^n \times 2^n\), người ta tiến hành gấp mảnh giấy này theo hai bước:
- Bước 1: Gấp theo đường nằm dọc chính giữa song song với cạnh tờ giấy sao cho mép trái chồng lên mép phải
- Bước 2: Gấp theo đường nằm ngang chính giữa song song với cạnh tờ giấy sao cho mép dưới chồng lên mép trên
Thực hiện liên tiếp các phép gấp như vậy cho tới khi kích thước của mảnh giấy còn lại là \(2^k \times 2^k\) \((k \leq n)\). Mảnh giấy còn lại này được chia thành lưới ô vuông đơn vị và đánh số các hàng ô từ trên xuống dưới từ 1 tới \(2^k\), các cột ô từ trái qua phải từ 1 tới \(2^k\), ô ở hàng \(i\), cột \(j\) gọi là ô \((i,j)\). Cuối cùng người ta đục bỏ đi \(m\) ô của mảnh giấy đã gấp và mở tờ giấy lại như cũ.
Yêu cầu: Cho biết mảnh giấy ban đầu bị tách rời thành bao nhiêu mảnh? (Một mảnh là một miền liên thông các ô kề cạnh không bị đục bỏ).
Input
- Dòng 1 chứa ba số nguyên dương \(n, k, m\) \((n \leq 30; k \leq 10; m \leq 2^k \times 2^k)\)
- \(m\) dòng tiếp theo, mỗi dòng chứa chỉ số hàng và chỉ số cột của một ô bị đục bỏ
Output
- Ghi ra một số duy nhất là số mảnh tính được
Example
Test 1
Input
3 2 5
1 2
2 2
3 2
4 2
3 1
Output
5

Bình luận