Thị trấn Điên (Crazy Town)
Đề bài
Mô tả
Trên mặt phẳng tọa độ có đường thẳng vô hạn, đường thẳng thứ được cho bởi phương trình (với và không đồng thời bằng ). Các đường thẳng này chia mặt phẳng thành nhiều miền liên thông (có thể có miền vô hạn). Mỗi miền như vậy được gọi là một khối.
Nhà của bạn nằm trong một khối nào đó, và trường đại học của bạn cũng nằm trong một khối. Trong một bước, bạn có thể di chuyển từ khối hiện tại sang một khối khác nếu hai khối có chung một đoạn biên giới có độ dài khác . Nếu hai khối chỉ gặp nhau tại một điểm giao (không có đoạn biên chung dài hơn ) thì không được phép di chuyển trực tiếp giữa chúng.
Hãy xác định số bước ít nhất cần thực hiện để đi từ khối chứa nhà tới khối chứa trường đại học. Bảo đảm rằng cả nhà và trường đại học đều không nằm trên bất kỳ đường thẳng nào.
Dữ liệu vào
- Dòng thứ nhất chứa hai số nguyên — tọa độ của nhà.
- Dòng thứ hai chứa hai số nguyên — tọa độ của trường đại học.
- Dòng thứ ba chứa một số nguyên — số đường thẳng.
- dòng tiếp theo, mỗi dòng chứa ba số nguyên — các hệ số của đường thẳng thứ .
Dữ liệu ra
In ra một số nguyên duy nhất là số bước ít nhất cần thực hiện.
Ràng buộc
- và
- Không có hai đường thẳng nào trùng nhau.
- Cả nhà và trường đại học đều không nằm trên đường thẳng nào.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 1 -1 -1 2 0 1 0 1 0 0 |
2 | Hai đường thẳng và đều tách nhà và trường về hai phía. Phải băng qua cả hai. |
| 1 1 -1 -1 3 1 0 0 0 1 0 1 1 -3 |
2 | Đường và tách hai điểm; đường thì cả hai điểm đều ở cùng một phía nên không phải băng qua. |
Bình luận