#P2331. Water pipe

    ID: 1332 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>搜索组合数学Northeastern Europe 2003Far-Eastern Subregion

Water pipe

题目描述

东城(Eastowner)长期面临供水短缺问题,为此新建了一条输水管道。施工队从两端同时开工,最终几乎完成了连接——第一段管道终点为 (x1,y1)(x1, y1),第二段终点为 (x2,y2)(x2, y2)。但剩余可用管道段仅有几种特定长度 L1,L2,,LkL_1, L_2, \dots, L_k,且每种长度的数量为 C1,C2,,CkC_1, C_2, \dots, C_k。由于技术限制,管道只能沿南北(垂直)或东西(水平)方向铺设,且连接时只能形成直线或直角转弯。请编写程序计算连接两点所需的最少管道段数,若无法连接则返回 1-1

输入格式

  • 第一行:x1 y1 x2 y2 kx1\ y1\ x2\ y2\ k1k41 \leq k \leq 4,坐标和长度 1000\leq 1000)。
  • 接下来 kk 行:L1 L2  LkL_1\ L_2\ \dots\ L_k(管道长度)。
  • 最后 kk 行:C1 C2  CkC_1\ C_2\ \dots\ C_k(对应数量,1Ci101 \leq C_i \leq 10)。

输出格式

  • 最少管道段数,若无法连接则输出 1-1

示例分析

输入数据 1

20 10 60 50 2 70 30 2 2

输出数据 1

4

解释

  • 水平距离 6020=40|60 - 20| = 40:可用 1×30+1×10=401 \times 30 + 1 \times 10 = 40(假设 L=[30,10]L=[30, 10]),需 22 段。
  • 垂直距离 5010=40|50 - 10| = 40:同理需 22 段。
  • 总管道数:2+2=42 + 2 = 4