Điểm, Đường thẳng và Những Bức tranh
Đề bài
Mô tả
Trên mặt phẳng toạ độ cho điểm phân biệt có toạ độ nguyên. Với mỗi điểm, bạn được chọn đúng một trong ba khả năng: vẽ đường thẳng đứng đi qua điểm đó, vẽ đường nằm ngang đi qua điểm đó, hoặc không vẽ gì cả.
Sau khi xử lý xong tất cả điểm, ta thu được một bức tranh là tập hợp các đường thẳng đã vẽ. Nhiều đường thẳng trùng nhau chỉ được tính là một đường. Hai bức tranh được coi là khác nhau nếu tập hợp các đường thẳng của chúng khác nhau.
Hãy đếm số bức tranh phân biệt có thể tạo ra, kết quả lấy theo modulo .
Dữ liệu vào
- Dòng đầu chứa một số nguyên — số lượng điểm.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và — toạ độ của điểm thứ .
Dữ liệu bảo đảm tất cả các điểm đều phân biệt.
Dữ liệu ra
In ra một số nguyên duy nhất là số bức tranh phân biệt, lấy theo modulo .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 -1 -1 0 1 |
9 | Hai điểm không dùng chung đường thẳng nào, nên chúng độc lập với nhau. Mỗi điểm có lựa chọn và mọi cách chọn đều cho ra một bức tranh khác nhau, tổng cộng . |
| 4 1 1 1 2 2 1 2 2 |
16 | Bốn điểm sinh ra đường thẳng đứng (, ) và đường nằm ngang (, ). Mọi tập con trong đường này đều vẽ được, kể cả tập đủ cả đường (vẽ được theo hai cách khác nhau nhưng chỉ tính là một bức tranh), nên đáp án là . |
| 1 0 0 |
3 | Một điểm cho ba bức tranh: không có đường nào, chỉ có , chỉ có . |
Bình luận