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

Qua đường đèn giao thông

Đề bài

Mô tả

Một con đường được biểu diễn bằng đoạn thẳng [0,n]. Một người đứng ở điểm 0 và muốn đến điểm n trong thời gian ngắn nhất.

Trên đường có m hòn đảo an toàn đặt tại các toạ độ nguyên phân biệt d1,d2,,dm (trong đó chắc chắn có 0n). Đèn giao thông hoạt động tuần hoàn: đầu tiên xanh trong g giây, rồi đỏ trong r giây, rồi lại xanh g giây, và cứ thế tiếp diễn. Người này bắt đầu di chuyển đúng vào lúc đèn vừa chuyển sang xanh.

Các quy tắc di chuyển:

  • Trong lúc đèn xanh, mỗi giây người này bắt buộc phải di chuyển đúng 1 đơn vị, sang trái (1) hoặc sang phải (+1), và luôn phải nằm trong đoạn [0,n]. Không được đứng yên khi đèn xanh.
  • Chỉ được đổi hướng khi đang đứng trên một hòn đảo an toàn. Nghĩa là: nếu giây trước vừa đi +1 thì giây này chỉ được đi +1, trừ khi đang ở trên một hòn đảo (khi đó được chọn +1 hoặc 1). Tương tự cho trường hợp vừa đi 1.
  • Đúng vào lúc đèn chuyển sang đỏ, người này bắt buộc phải đang đứng trên một hòn đảo an toàn (và chờ hết r giây đỏ tại đó). Nếu tại thời điểm đèn đỏ mà không ở trên đảo thì lộ trình không hợp lệ.

Người này coi như đã qua đường ngay khi toạ độ của mình bằng n (nếu chạm n giữa chừng thì dừng luôn, không cần chờ hết đèn).

Hãy tìm thời gian nhỏ nhất để qua đường tuân theo mọi quy tắc trên, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • Dòng thứ hai chứa m số nguyên phân biệt d1,d2,,dm, là toạ độ các hòn đảo an toàn. Chắc chắn có 0n trong số đó.
  • Dòng thứ ba chứa hai số nguyên gr: thời gian đèn xanh và thời gian đèn đỏ.

Dữ liệu ra

In ra một số nguyên duy nhất là thời gian nhỏ nhất để qua đường, hoặc 1 nếu không thể.

Ràng buộc

  • 1n106
  • 2mmin(n+1,104)
  • 0din, các di phân biệt, có cả 0n.
  • 1g,r1000

Ví dụ

Input Output Giải thích
15 5
0 3 7 14 15
11 11
45 Đèn xanh đầu tiên: đi tới 7 rồi quay về 3 (đổi hướng tại đảo 7), kết thúc tại đảo 3 đúng lúc đèn đỏ, chờ 11 giây. Đèn xanh thứ hai: từ 3 đi tới 14, lại chờ đỏ. Cuối cùng đi 1 giây tới 15. Tổng 11+11+11+11+1=45.
13 4
0 3 7 13
9 9
-1 Không có lộ trình nào cho phép luôn đứng trên đảo mỗi khi đèn đỏ, nên không thể qua đường.

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