Bedao Regular Contest 18 - Growing Carrot

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong một khu rừng nọ ở vương quốc Alpha, có một chú thỏ tên là Rabbit sở hữu một mảnh đất rất lớn và màu mỡ, có thể trồng được mọi loại cây trên này. Do rất thích ăn Carrot, thỏ ta quyết định chỉ trồng carrot trên khu vườn này. Rabbit đã kiếm được ~m~ loại hạt giống khác nhau, và muốn trồng cả ~m~ loại hạt giống này.

Mảnh đất có thể coi như hệ tọa độ Descarte ~Oxy~ vô hạn với nhà của Rabbit nằm ở tọa độ ~O(0,0)~. Một điểm trên mảnh đất có tọa độ ~(x, y)~ nếu nó cách nhà của Rabbit độ dài ~x~ theo trục ~Ox~ và ~y~ theo trục ~Oy~ (Lưu ý ~x~ và ~y~ có thể âm). Với hạt giống carrot thứ ~i~, Rabbit quyết định trồng nó ở điểm ~(x_{c_i}, y_{c_i})~ trên mảnh đất.

Để bảo vệ khu vườn của mình khỏi sự phá hoại của kẻ khác hoặc sự tàn phá của thời tiết, Rabbit quyết định sẽ đóng thêm ~n~ chiếc cọc ở ~n~ vị trí khác nhau trên khu vườn. Theo tính toán của mình, Rabbit sẽ đóng chiếc cọc thứ ~i~ vào điểm có tọa độ ~(x_{s_i}, y_{s_i})~. Khi đóng cọc như thế này, Rabbit biết rằng ~1~ củ carrot sẽ an toàn và cho năng suất cao nhất khi được nằm hoàn toàn trong ~1~ đa giác không tự cắt tạo bởi một tập hợp các cọc trong ~n~ chiếc cọc đó.

Ví dụ các đa giác ~ABCD~ trong hai hình dưới đây là một đa giác không tự cắt:

Imgur

Imgur

Còn đa giác ~ABCD~ trong hình dưới đây thì không:

Imgur

Do đã mất quá nhiều thời gian để tìm kiếm và trồng carrot, Rabbit không có đủ thời gian để tìm đủ ~n~ chiếc cọc. Do đó, thỏ đã tính toán ~q~ kế hoạch như sau.

  • Với mỗi kế hoạch, Rabbit chọn ra ~k~ trong ~n~ vị trí để đặt chiếc cọc.
  • Với ~k~ chiếc cọc được đóng như trên, số lượng carrot được bảo vệ và cho năng suất tốt nhất là bao nhiêu?

Lưu ý rằng, để carrot có thể phát triển tốt nhất có thể, sẽ không có củ carrot nào được trồng cùng vị trí với ~1~ chiếc cọc hay ~1~ củ carrot khác, đồng thời không có ~2~ chiếc cọc nào được đóng cùng một chỗ. Sẽ không có carrot nào thẳng hàng với ~2~ chiếc cọc. Hơn nữa, để đảm bảo an toàn, sẽ không có chiếc cọc hay carrot nào được trồng ở nhà thỏ, và không có ~2~ chiếc cọc nào trong ~n~ chiếc cọc được đóng thẳng hàng với nhà thỏ, đồng thời không có carrot nào nằm trên cùng ~1~ đường thẳng với ~1~ chiếc cọc và nhà thỏ.

Input

Dòng thứ nhất gồm số nguyên dương ~n~ ~(1 \le n \le 200)~ là số lượng chiếc cọc Rabbit muốn đóng trên mảnh đất.

~n~ dòng sau, dòng thứ ~i~ gồm ~2~ số nguyên ~x_i, y_i~ ~(|x_i|, |y_i| \le 10^9)~ miêu tả tọa độ ~(x_i, y_i)~ của chiếc cọc thứ ~i~.

Dòng tiếp theo gồm số nguyên dương ~m~ là số lượng carrot Rabbit muốn trồng ~(1 \le m \le 1000)~.

~m~ dòng sau, dòng thứ ~i~ gồm ~2~ số nguyên ~x_i, y_i~ ~(|x_i|, |y_i| \le 10^9)~ miêu tả tọa độ ~(x_i, y_i)~ của carrot thứ ~i~.

Dòng tiếp theo gồm số nguyên dương ~q~ ~(1 \le q \le 2 * 10^5)~ miêu tả số lượng kế hoạch của Rabbit.

~q~ dòng tiếp theo, mỗi dòng gồm số nguyên dương ~k~ miêu tả số chiếc cọc Rabbit sẽ dùng trong ~n~ chiếc cọc trên, tiếp theo là ~k~ số nguyên dương ~x_1, x_2, x_3, \dots, x_k~ miêu tả chỉ số các chiếc cọc mà Rabbit sẽ chọn ~(3 \le k \le n, 1 \le x_i \le n)~.

Gọi ~T~ là tổng của ~k~ trong mọi truy vấn, dữ lệu đảm bảo ~T~ không quá ~2 * 10^6~.

Output

Gồm ~q~ dòng, dòng thứ ~i~ là đáp án của kế hoạch thứ ~i~.

Scoring

Subtask Điểm Giới hạn
1 ~20~ ~n, m, q \le 100,~ trong mọi kế hoạch thì ~k = 3~.
2 ~25~ ~n, m, q \le 100,~ trong mọi kế hoạch đảm bảo các chiếc cọc ~x_1, x_2, \dots, x_k~ tạo thành ~1~ đa giác lồi với các điểm theo thứ tự ngược chiều kim đồng hồ.
3 ~30~ ~q \le 10^4~
4 ~25~ Không có ràng buộc gì thêm.

Sample Input 1

6
1 1
2 6
8 3
3 1
6 0
3 4
3
7 2
2 5
1 4
3
3 1 2 3
4 1 2 4 6
5 2 3 4 5 6

Sample Output 1

1
1
1

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.