trang chủ / đề bài / voi16_haucan

Hậu cần

Đề bài

Mô tả

Trong chiến dịch Điện Biên Phủ, công tác hậu cần đã góp phần to lớn làm nên chiến thắng lẫy lừng, chấn động năm châu, rung động địa cầu của dân tộc ta. Chiến dịch đã huy động tổng lực hàng ngàn phương tiện từ cơ giới đến thô sơ để vận chuyển hàng chục vạn tấn lương thực, đạn dược ra chiến trường. Trong đó đặc biệt phải kể đến con số dân công hỏa tuyến lên đến 260 ngàn người (gấp 13 lần so với dự báo của Pháp), đóng góp 11 triệu ngày công. Các con số đó đã nói lên lòng yêu nước, tinh thần quyết chiến, quyết thắng của cả dân tộc trong chiến dịch lịch sử này. Điều đáng tiếc là hiệu quả vận chuyển nói chung là khá thấp, đặc biệt là vận chuyển lương thực bằng dân công gánh bộ, số lượng lương thực tới nơi nộp kho chỉ còn 8%. Nghĩ về con số này Vinh ước ao được góp sức cùng cha ông ngày đó nâng cao hiệu quả vận chuyển, và thế là Vinh thử giải bài toán sau đây:

Có Q lít xăng ở bể chứa của kho xăng đặt ở thôn Đoài. Độ dài đường vận chuyển từ thôn Đoài đến kho xăng của Ban hậu cần chiến dịch là L. Chỉ có một xe bồn để vận chuyển xăng. Bình xăng của xe chứa được K lít, mỗi km xe tiêu thụ 1 lít xăng. Trên đường vận chuyển xăng đến đích, có thể vận chuyển xăng đến các bể chứa đặt tại một số địa điểm trên đường vận chuyển. Bắt đầu từ thôn Đoài, cứ mỗi D km trên đường vận chuyển lại có một bể chứa. Giả thiết rằng sức chứa của tất cả các bể xăng (ở các điểm trung gian cũng như tại kho xăng của Ban hậu cần chiến dịch) tối thiểu là Q mà ban đầu chúng là các bể rỗng và xe có thể đổ xăng vào và lấy xăng ra khỏi các bể này. Cần tìm cách điều hành xe để vận chuyển được một lượng xăng lớn nhất từ bể chứa ở thôn Đoài đến kho xăng của Ban hậu cần chiến dịch.

Yêu cầu: Với các điều kiện đặt ra, hãy giúp Vinh tìm cách điều hành xe để vận chuyển được một lượng xăng lớn nhất từ bể chứa ở thôn Đoài đến kho xăng của Ban hậu cần chiến dịch.

Dữ liệu vào

Gồm một dòng duy nhất chứa 4 số nguyên L,Q,K,D được ghi cách nhau bởi dấu cách, trong đó:

  • L (1≤L≤109): độ dài đường vận chuyển xăng từ thôn Đoài đến kho xăng của Ban hậu cần chiến dịch;
  • Q (1≤Q≤1012): lượng xăng có ở bể chứa đặt tại thôn Đoài;
  • K (1≤K≤109): sức chứa của bình xăng (lít) của xe;
  • D (1≤D≤109): khoảng cách giữa các bể chứa trung gian.

Dữ liệu ra

In ra một số nguyên là số lượng lít xăng lớn nhất có thể vận chuyển từ thôn Đoài đến kho xăng của Ban hậu cần chiến dịch. Nếu như với những điều kiện đặt ra, xe không thể đến được kho xăng của Ban hậu cần chiến dịch thì in ra −1.

Ràng buộc

  • 1≤L,K,D≤109;
  • 1≤Q≤1012.

Subtasks

  • Subtask 1 (50% số test, 50% số điểm): LD≤104;
  • Subtask 2 (50% số test, 50% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
3 10 3 1 1 Tới km 1: hai chuyến chở 3 lít rồi quay về (mỗi chuyến để lại 1 lít) và một chuyến chở 3 lít không quay về (để lại 2 lít), bỏ lại 1 lít ở thôn Đoài: km 1 có 4 lít. Từ 4 lít đó chở tới km 2 được 2 lít, rồi tới đích còn 1 lít.
5 7 3 1 -1 Dù điều hành thế nào xe cũng hết xăng trước khi tới đích.

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