trang chủ / đề bài / tb_tst_23_a

Du lịch

Đề bài

Mô tả

Sau bao năm chăm chỉ làm lụng và tiết kiệm, cuối cùng Sơn đã có đủ điều kiện để thực hiện được ước mơ của mình: đi du lịch ở nước ngoài.

Nơi Sơn đến là một quốc gia có n địa điểm du lịch, được kết nối thành hình tròn. Các địa điểm được đánh số từ 1 đến n, địa điểm i có một con đường nối tới địa điểm (imodn)+1 với khoảng cách di. Quá yêu quý quốc gia này, Sơn quyết định sẽ ở đây n ngày. Ngày thứ i, cậu sẽ thuê khách sạn ở địa điểm i, sau đó đi tham quan tất cả các địa điểm du lịch của quốc gia này và cuối ngày trở lại khách sạn. Nghĩa là trong ngày thứ i, Sơn đi đúng một vòng i→i+1→…→n→1→…→i theo chiều tăng của chỉ số.

Phương tiện di chuyển của cậu là một chiếc xe máy có dung tích bình xăng là l lít xăng. Chiếc xe này tiêu thụ 1 lít xăng mỗi kilomet. Ở mỗi địa điểm đều có một cây xăng, giá xăng ở địa điểm thứ i là ci đồng/lít. Mỗi lần đổ xăng, Sơn có thể đổ một lượng tùy ý, miễn là lượng xăng trong bình không vượt quá l lít.

Yêu cầu: Bạn hãy giúp Sơn tính xem, ngày thứ i, nếu cậu bắt đầu hành trình bằng một chiếc xe máy hết xăng, chi phí nhỏ nhất cậu cần bỏ ra để hoàn thành hành trình là bao nhiêu. Các ngày được tính độc lập với nhau: ngày nào xe cũng bắt đầu với bình hết xăng.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n,l là số địa điểm du lịch ở nơi cậu đến và dung tích bình xăng của Sơn (3≤n≤2·105, 1≤l≤109).
  • Dòng thứ hai chứa n số nguyên dương d1,d2,…,dn, số thứ i là khoảng cách từ địa điểm i đến địa điểm (imodn)+1 (1≤di≤l).
  • Dòng thứ ba chứa n số nguyên dương c1,c2,…,cn, số thứ i là giá xăng ở địa điểm thứ i (1≤ci≤2).

Dữ liệu ra

Một dòng duy nhất chứa n số nguyên, số nguyên thứ i là chi phí Sơn cần bỏ ra trong ngày thứ i.

Ràng buộc

  • 3≤n≤2·105, 1≤l≤109.
  • 1≤di≤l.
  • 1≤ci≤2.

Subtasks

  • Subtask 1 (30% số điểm): n,l≤100.
  • Subtask 2 (40% số điểm): n≤5000.
  • Subtask 3 (30% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5 7
1 3 2 5 1
2 1 1 1 2
13 12 12 12 14 Nếu xuất phát ở địa điểm 1: đổ 1 lít ở địa điểm 1 để sang địa điểm 2 (tốn 2 đồng, bình còn 0 lít); đổ 3 lít ở địa điểm 2 để sang địa điểm 3 (tốn 3 đồng, còn 0 lít); đổ 2 lít ở địa điểm 3 để sang địa điểm 4 (tốn 2 đồng, còn 0 lít); đổ 6 lít ở địa điểm 4 để sang địa điểm 5 (tốn 6 đồng, còn 1 lít); đi từ địa điểm 5 về địa điểm 1 mà không cần đổ thêm (còn 0 lít). Tổng chi phí 2+3+2+6=13.
4 3
1 2 1 3
2 2 2 2
14 14 14 14 Mọi cây xăng đều có giá 2, tổng quãng đường là 7 nên ngày nào cũng tốn 14 đồng.
3 5
3 4 4
1 2 2
17 19 17 Ngày thứ 2: đổ 4 lít giá 2 ở địa điểm 2, 4 lít giá 2 ở địa điểm 3, tới địa điểm 1 chỉ còn 3 km về địa điểm 2 nên đổ 3 lít giá 1. Tổng 8+8+3=19.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0