#SY0708. 小船运输

小船运输

丝绸之路货物运输

2026 青少年信息素养大赛 复赛卷五 · 初中组 C++ 第 14 题

题目描述

在丝绸之路上,西域的港口有一批珍贵的丝绸货物需要通过小船运到对岸。一共有 n 箱丝绸,每箱丝绸都有自己的重量 w[i],而负责运输的小船最大载重为 C。小船每次最多可以装 2 箱丝绸,且每次运输的总重量不能超过 C。

每次小船从港口出发把货物运到对岸,再由一名船员把船划回来,才能进行下一次运输。如果船上有两箱货物,往返的运输时间取决于重量较大的那一箱对应的运输时间 t[i](每箱丝绸都有一个固定的运输时间,和重量正相关)。如果船上只有一箱货物,则往返时间就是这箱对应的 t[i]。

现在请你设计一个运输方案,使得所有货物都运到对岸的总时间最短。

输入格式

  • 第一行:两个整数 n 和 C,分别表示货物箱数和小船最大载重。
  • 第二行:n 个整数 w[1..n],按重量从小到大排序,每箱丝绸的重量。
  • 第三行:n 个整数 t[1..n],对应每箱丝绸的运输时间(与重量一一对应)。

输出格式

输出一行,一个整数,表示将所有货物运到对岸的最短总时间。

样例输入

3 10
2 3 5
1 2 3

样例输出

6

数据范围

  • 1 ≤ n ≤ 1000
  • 1 ≤ C ≤ 10000
  • 1 ≤ w[i] ≤ C
  • 1 ≤ t[i] ≤ 1000