Kiểm tra điểm trong bao lồi
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Tý đang phát triển một hệ thống định vị trong nhà. Các điểm truy cập (Access Point) được đặt tại các vị trí tạo thành một đa giác lồi. Một thiết bị di động xuất hiện tại một điểm bất kỳ, hệ thống cần xác định xem thiết bị đó có nằm trong vùng phủ sóng (bên trong đa giác) hay không.
Cho \(N\) điểm và \(Q\) truy vấn, với mỗi truy vấn hãy kiểm tra xem điểm đó có nằm trong hoặc trên biên của bao lồi tạo bởi \(N\) điểm đã cho hay không.
Định dạng đầu vào
- Dòng đầu tiên chứa số nguyên \(N\) (\(3 \le N \le 10^5\)).
- \(N\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i, y_i\) (\(-10^9 \le x_i, y_i \le 10^9\)).
- Dòng tiếp theo chứa số nguyên \(Q\) (\(1 \le Q \le 10^5\)).
- \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_q, y_q\) (\(-10^9 \le x_q, y_q \le 10^9\)) là toạ độ điểm cần kiểm tra.
Định dạng đầu ra
- Với mỗi truy vấn, in ra \(CO\) nếu điểm nằm trong hoặc trên biên của bao lồi, ngược lại in ra \(KHONG\).
Ví dụ
Input:
6
0 0
4 0
4 4
2 2
0 4
2 1
4
3 1
5 5
2 3
0 -1
Output:
CO
KHONG
CO
KHONG
Giải thích: Bao lồi đi qua \((0,0), (4,0), (4,4), (0,4)\). Điểm \((3,1)\) và \((2,3)\) nằm trong; \((5,5)\) và \((0,-1)\) nằm ngoài.
Ràng buộc
- 30% số điểm: \(N, Q \le 10^3\).
- 30% số điểm tiếp theo: \(N, Q \le 10^4\).
- 40% số điểm còn lại: không có ràng buộc gì thêm.
Nhận xét