trang chủ / bài tập / buscross

Băng đường tránh xe buýt

Đề bài

Mô tả

Trên đường ngang vô hạn rộng w, giới hạn bởi hai đường y=0y=w, có một chiếc xe buýt là một đa giác lồi gồm n đỉnh. Xe buýt di chuyển với tốc độ không đổi v theo hướng giảm dần của tọa độ x (chỉ tọa độ x thay đổi theo thời gian). Sau khoảng thời gian t, mọi đỉnh của đa giác sẽ có tọa độ x bị giảm đi v·t.

Người đi bộ xuất phát tại điểm (0,0) và chỉ có thể di chuyển dọc theo trục Oy (đoạn nối (0,0)(0,w)) với tốc độ không vượt quá u. Người đi bộ có thể đi lên, đi xuống, dừng lại tức thì hoặc thay đổi tốc độ tùy ý, nhưng không được rời khỏi đoạn.

Người đi bộ bị xe buýt đâm nếu tại một thời điểm nào đó, vị trí của họ nằm thực sự bên trong đa giác (nằm trên đỉnh hoặc trên cạnh của đa giác thì không tính là bị đâm).

Cho biết vị trí của xe buýt tại thời điểm 0. Hãy xác định khoảng thời gian nhỏ nhất để người đi bộ đi từ (0,0) đến (0,w) mà không bị xe buýt đâm.

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, w, v, u — số đỉnh của đa giác, chiều rộng đường, tốc độ xe buýt và tốc độ tối đa của người đi bộ.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên xiyi — tọa độ đỉnh thứ i của đa giác, liệt kê theo thứ tự ngược chiều kim đồng hồ.

Đa giác được đảm bảo không suy biến.

Dữ liệu ra

In ra một số thực t — thời gian nhỏ nhất cần thiết. Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá 106.

Ràng buộc

  • 3n10000
  • 1w109
  • 1v,u1000
  • 109xi109
  • 0yiw

Ví dụ

Input Output Giải thích
5 5 1 2
1 2
3 1
4 3
3 4
1 4
5.0000000000 Người đi bộ phải chờ xe buýt đi qua rồi mới băng đường. Đáp án tối ưu là chờ 2,5 giây rồi đi với tốc độ tối đa, mất w/u=2,5 giây nữa.
3 3 5 2
3 1
4 0
5 1
1.5000000000 Người đi bộ đi thẳng với tốc độ tối đa: w/u=1,5. Tại thời điểm họ đến mỗi mức y tương ứng, xe buýt đã đi qua hoặc còn chưa tới đó.
3 3 1 1
0 0
1 1
0 2
3.0000000000 Xe buýt đi đủ chậm và nằm vừa phía bên phải đường, nên người đi bộ chỉ cần đi thẳng với tốc độ tối đa: w/u=3.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0