Bất cứ nơi nào có công trình xây dựng quy mô lớn, bạn đều sẽ thấy cần cẩu làm nhiệm vụ nâng hàng. Người ta hiếm khi nghĩ đến việc cần cẩu là những ví dụ tuyệt vời đến mức nào của kỹ thuật: một kết cấu có trọng lượng (tương đối) nhỏ lại có thể nâng những tải trọng nặng hơn nhiều. Nhưng ngay cả những cần cẩu được chế tạo tốt nhất cũng có thể có giới hạn về trọng lượng mà chúng nâng được.
Association of Crane Manufacturers (ACM) cần một chương trình tính khoảng trọng lượng mà một cần cẩu có thể nâng. Vì cần cẩu đối xứng, các kỹ sư ACM quyết định chỉ xét một mặt cắt ngang của mỗi cần cẩu; mặt cắt này có thể được xem như một đa giác đặt trên trục $x$.
Hình C.1: Mặt cắt ngang của cần cẩu
Hình C.1 cho thấy mặt cắt ngang của cần cẩu trong ví dụ đầu tiên. Giả sử mỗi đơn vị $1 \times 1$ của mặt cắt cần cẩu nặng 1 kilôgam và vật nặng cần nâng sẽ được gắn vào một đỉnh của đa giác (được chỉ bằng mũi tên trong Hình C.1). Hãy viết chương trình xác định khoảng trọng lượng mà cần cẩu không bị lật sang trái hoặc sang phải.
Dữ liệu vào
Dữ liệu vào gồm một trường hợp kiểm thử duy nhất. Trường hợp này bắt đầu bằng số nguyên $n$ ($3 \le n \le 100$), là số đỉnh của đa giác mô tả hình dạng cần cẩu. $n$ cặp số nguyên $x_i,y_i$ tiếp theo ($-2\,000 \le x_i \le 2\,000$, $0 \le y_i \le 2\,000$) là tọa độ các đỉnh của đa giác theo thứ tự. Vật nặng được gắn vào đỉnh đầu tiên, và có ít nhất hai đỉnh nằm trên trục $x$.
Dữ liệu ra
In khoảng trọng lượng (tính bằng kilôgam) có thể gắn vào cần cẩu mà không làm nó bị lật. Nếu khoảng là $[a,b]$, in $\lfloor a\rfloor$ .. $\lceil b\rceil$. Ví dụ, nếu khoảng là $[1.5,13.3]$, in 1 .. 14. Nếu khoảng là $[a,\infty)$, in $\lfloor a\rfloor$ .. inf. Nếu cần cẩu không thể chịu được bất kỳ trọng lượng nào, thay vào đó in unstable.
Ví dụ
Dữ liệu vào 1
7 50 50 0 50 0 0 30 0 30 30 40 40 50 40
Dữ liệu ra 1
0 .. 1017
Dữ liệu vào 2
7 50 50 0 50 0 0 10 0 10 30 20 40 50 40
Dữ liệu ra 2
unstable