题目描述
东城(Eastowner)长期面临供水短缺问题,为此新建了一条输水管道。施工队从两端同时开工,最终几乎完成了连接——第一段管道终点为 (x1,y1),第二段终点为 (x2,y2)。但剩余可用管道段仅有几种特定长度 L1,L2,…,Lk,且每种长度的数量为 C1,C2,…,Ck。由于技术限制,管道只能沿南北(垂直)或东西(水平)方向铺设,且连接时只能形成直线或直角转弯。请编写程序计算连接两点所需的最少管道段数,若无法连接则返回 −1。
输入格式
- 第一行:x1 y1 x2 y2 k(1≤k≤4,坐标和长度 ≤1000)。
- 接下来 k 行:L1 L2 … Lk(管道长度)。
- 最后 k 行:C1 C2 … Ck(对应数量,1≤Ci≤10)。

输出格式
示例分析
输入数据 1
20 10 60 50 2 70 30 2 2
输出数据 1
4
解释:
- 水平距离 ∣60−20∣=40:可用 1×30+1×10=40(假设 L=[30,10]),需 2 段。
- 垂直距离 ∣50−10∣=40:同理需 2 段。
- 总管道数:2+2=4。