#1236. 采集

    ID: 1236 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 普及 上传者: 标签>基础算法二分贪心枚举模拟前缀和

采集

题目描述

给定一个 nn 行 mm 列的网格,第 ii 行第 jj 列的格子记作 (i,j)(i, j),其包含的花粉量为 fi,jf_{i,j}。

网格中共有 kk 只蜜蜂,第 ii 只蜜蜂的初始位置为 (xi,yi)(x_i, y_i)。所有的蜜蜂都具有相同的体力值 pp(pp 为非负整数)。

每只蜜蜂可以自由从以下两种方案中选择一种进行花粉采集:

  • 横向采集:蜜蜂在同一行进行采集,最多采集到 (xi,yi−p)∼(xi,yi+p)(x_i, y_i-p) \sim (x_i, y_i+p) 范围内的花粉。
  • 纵向采集:蜜蜂在同一列进行采集,最多采集到 (xi−p,yi)∼(xi+p,yi)(x_i-p, y_i) \sim (x_i+p, y_i) 范围内的花粉。

超出网格边界的位置忽略不计。每个格子上的花粉最多只能被采集一次(即使它在多只蜜蜂的采集范围内,也只能计算一次)。

请问,想要让所有蜜蜂在合理的方案下,共同采集到的花粉总量至少达到 ww,蜜蜂的体力值 pp 至少为多少?

输入格式

第一行包含四个正整数 n,m,k,wn, m, k, w —— 依次表示网格的行数、列数、蜜蜂的数量以及目标花粉量。

接下来 nn 行,每行包含 mm 个正整数,其中第 ii 行的第 jj 个整数表示 fi,jf_{i,j}。

接下来 kk 行,每行包含两个正整数 xi,yix_i, y_i,描述第 ii 只蜜蜂的初始位置。

输出格式

输出一行,一个整数,表示体力值 pp 的最小值。

如果 pp 取任何值都不能满足目标花粉量要求,请输出 Impossible。

样例输入 1

3 4 2 20
1 2 3 4
5 6 7 8
9 10 11 12
2 2
3 4

样例输出 1

1

样例输入 2

2 3 1 100
1 2 3
4 5 6
1 1

样例输出 2

Impossible

说明

样例解释

在样例 11 中:

  • 第 11 只蜜蜂初始在 (2,2)(2, 2)。
  • 第 22 只蜜蜂初始在 (3,4)(3, 4)。
  • 若 p=0p=0,它们只能采集自己所在格子的花粉,总采集量为 f2,2+f3,4=6+12=18<20f_{2,2} + f_{3,4} = 6 + 12 = 18 < 20。
  • 若 p=1p=1:
    • 第 11 只蜜蜂选择横向采集,可采集 (2,1),(2,2),(2,3)(2, 1), (2, 2), (2, 3),花粉量为 5+6+7=185 + 6 + 7 = 18。
    • 第 22 只蜜蜂选择纵向采集,可采集 (2,4),(3,4)(2, 4), (3, 4)(超出边界的忽略),花粉量为 8+12=208 + 12 = 20。 两只蜜蜂采集的格子没有重叠,总花粉量为 18+20=38≥2018 + 20 = 38 \ge 20。满足条件,因此 pp 的最小值为 11。

数据范围

对于全部测试点,保证:

  • 1≤n,m≤10001 \le n, m \le 1000
  • 1≤k≤61 \le k \le 6
  • 1≤fi,j,w≤1091 \le f_{i,j}, w \le 10^9
  • 1≤xi≤n1 \le x_i \le n,1≤yi≤m1 \le y_i \le m
  • 保证所有的输入数值均为整数。

各测试点的附加限制如下表所示:

测试点占比 n,m≤n, m \le k≤k \le 特殊性质
10%10\% 1010 11 无
2020 33
20%20\% 200200
66
15%15\% 10001000 所有的 fi,j=1f_{i,j} = 1
25%25\% 无