PreVOI 2026 - Contest 2 - Chia đất

Xem dạng PDF

Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Trên mặt phẳng tọa độ, một khu đất được xác định bởi đường gấp khúc khép kín không tự cắt đi qua ~n~ điểm với tọa độ ~(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)~, được liệt kê lần lượt theo chiều ngược chiều kim đồng hồ. Alice muốn phân chia khu đất thành các vùng, mỗi vùng sẽ trồng một loại rau. Để thuận tiện cho công tác quản lý, khu đất sẽ được chia thành các vùng, mỗi vùng bởi việc kẻ các đường thẳng song song với trục hoành. Với mục đích phân chia hợp lý diện tích canh tác cho các loại rau, một bài toán đặt ra là: Xác định diện tích của khu đất nằm giữa hai đường thẳng song song với trục hoành: ~y = a~ và ~y = b~.

Yêu cầu: Tính diện tích khu đất nằm giữa hai đường thẳng ~y = a~ và ~y = b~ cho mỗi câu hỏi.

Input

  • Dòng đầu tiên chứa hai số nguyên dương ~n~ và ~q~, trong đó ~n~ là số đỉnh của đa giác biểu diễn khu đất, ~q~ là số câu hỏi.
  • Dòng thứ ~i~ trong ~n~ dòng tiếp theo chứa hai số nguyên ~x_i, y_i~ có trị tuyệt đối không vượt quá ~10^5~ là tọa độ của đỉnh thứ ~i~ của đa giác ~(i = 1, 2, \dots, n)~.
  • Dòng thứ ~j~ trong ~q~ dòng cuối cùng chứa hai số nguyên ~a_j, b_j~ có trị tuyệt đối không vượt quá ~10^5~, tương ứng với câu hỏi: "Diện tích của khu đất nằm giữa hai đường thẳng ~y = a_j~ và ~y = b_j~ là bao nhiêu?". Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Output

  • Ghi ra ~q~ dòng, mỗi dòng ghi một số thực là câu trả lời cho một câu hỏi tương ứng trong dữ liệu vào với độ chính xác một chữ số sau dấu chấm thập phân.

Sample Input 1

8 4
2 10
6 6
9 6
10 7
15 2
28 15
16 12
1 4
12 1
1 15

Sample Output 1

4.0
119.0
123.0
146.5

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.