QOJ.ac

QOJ

時間限制: 4 s 記憶體限制: 256 MB 總分: 100

#10618. 城市选址

统计

Bajtazar 终于找到了建造新巴伊托沃(Nowe Bajtowo)的理想区域。他还不确定城市会有多大,但他已经确定了一个直角坐标系,并决定城市将是一个边平行于坐标轴的矩形,其中一个顶点位于 $(0, 0)$。该矩形的对角顶点将位于某个尚未确定的点 $(W, H)$,其中 $W, H > 0$ 为整数。

Bajtazar 计划修建 $n+1$ 条平行于 $y$ 轴的林荫道,编号从 $0$ 到 $n$,其中第 $i$ 条林荫道连接点 $(x_i, 0)$ 和 $(x_i, H)$。他还计划修建 $m+1$ 条平行于 $x$ 轴的街道,编号从 $0$ 到 $m$,其中第 $j$ 条街道连接点 $(0, y_j)$ 和 $(W, y_j)$。出于技术原因,所有(尚未确定的)坐标 $x_i$ 和 $y_j$ 必须是满足 $0 = x_0 < x_1 < \dots < x_n = W$ 以及 $0 = y_0 < y_1 < \dots < y_m = H$ 的整数。林荫道和街道将城市划分为 $n \cdot m$ 个矩形地块,其中位于第 $i-1$ 条与第 $i$ 条林荫道之间以及第 $j-1$ 条与第 $j$ 条街道之间的地块记为 $(i, j)$。

Bajtazar 与新巴伊托沃的 $l$ 位未来居民保持联系,并收集了他们的偏好信息。他知道第 $k$ 位未来居民(对于 $k = 1, 2, \dots, l$)希望住在地块 $(a_k, b_k)$,并要求该地块的面积恰好为 $p_k$ 平方米(其中 $1 \le p_k \le r$,参数 $r$ 在输入中给出)。你可以假设对于 $i \neq j$,满足 $a_i \neq a_j$ 或 $b_i \neq b_j$。没有任何未来居民感兴趣的地块可以具有任意面积。Bajtazar 请你检查是否有可能满足所有未来居民的要求,如果可以,请确定整个城市可能的最小面积。

输入格式

输入的第一行包含四个整数 $n, m, l$ 和 $r$ ($1 \le n, m \le 10^3, 1 \le l \le n \cdot m, 1 \le r \le 10^6$)。接下来的 $l$ 行描述了未来居民的要求;第 $i$ 行包含三个整数:$a_i, b_i$ 和 $p_i$ ($1 \le a_i \le n, 1 \le b_i \le m, 1 \le p_i \le r$)。

输出格式

输出的第一行应包含一个单词 TAK(如果可以满足所有未来居民的要求),否则输出 NIE。如果可以满足所有要求,则标准输出的第二行应包含一个整数 $p$,表示满足所有未来居民要求的城市可能具有的最小面积。

样例

样例输入 1

2 2 3 100
1 1 7
1 2 13
2 1 1

样例输出 1

NIE

样例输入 2

2 2 3 100
1 1 7
1 2 14
2 1 1

样例输出 2

TAK
24

说明 2

在第二个样例中,可以注意到我们必须有 $x_0 = 0, x_1 = 7, x_2 = 8$ 以及 $y_0 = 0, y_1 = 1, y_2 = 3$。这种布局如下图所示。每个地块上的数字表示其面积。加粗的数字表示未来居民要求的面积。未加粗的数字表示没有要求的地块。

子任务

测试集分为以下子任务。每个子任务的测试由一个或多个独立的测试组组成。

子任务 限制 分数
1 $n = 1$ 9
2 $n, m \le 6, r \le 100$ 11
3 $n, m \le 100, r \le 1000$ 16
4 $r \le 1000$ 19
5 $l = n \cdot m$ 21
6 无额外限制 24

如果仅第一行正确,你的程序将获得该测试点 50% 的分数。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.