Gửi bài giải

Điểm: 0,60 (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++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một đa giác lồi gồm ~n~ đỉnh, đỉnh thứ ~i~ là ~P_i~. Bạn cần chọn ra ba điểm ~a,b,c~ phân biệt theo thứ tự ngược chiều kim đồng hồ thuộc ~P~, sao cho tồn tại đúng ~k~ cạnh từ ~b~ tới ~c~ theo thứ tự ngược chiều kim đồng hồ.

Giờ ta sẽ cắt đa giác ~P~ ra với hai đoạn ~ab~, ~ac~. Gọi ~Q~ là đa giác gồm ~ab~, ~ac~ và ~k~ cạnh nằm giữa ~b~ và ~c~. Đa giác này gồm ~k+2~ cạnh.

Tìm diện tích lớn nhất có thể của đa giác ~Q~. Chú ý rằng ~ab~ và ~bc~ có thể đồng thời là một cạnh của ~P~.

Input

  • Dòng đầu gồm số nguyên dương ~n~.
  • ~n~ dòng sau, dòng thứ ~i~ gồm hai số nguyên dương ~x_i~ và ~y_i~ là tọa độ của điểm ~P_i~.
  • Tọa độ các điểm được nhập theo thứ tự ngược chiều kim đồng hồ.

Constraints

  • ~n \le 10^5~
  • ~1 \le k \le n-2~

Subtask

  • Subtask ~1~: ~n \le 50~ ~(40\%)~
  • Subtask ~2~: ~n \le 200~ ~(30\%)~
  • Subtask ~3~: Không có giới hạn gì thêm ~(30\%)~

Output

  • In ra diện tích lớn nhất tìm được, lấy ~1~ chữ số sau dấu thập phân.
Sample Input 1:
8 3
1 2
3 1
5 1
7 3
8 6
5 8
3 7
1 5
Sample Output 1:
26.5
Sample Input 2:
7 2
3 6
1 1
3 1
7 1
8 1
5 6
4 6
Sample Output 2:
20.0    
Explanation :

Ví dụ ~1~ và ~2~ được minh họa qua hình vẽ sau:

Imgur


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.