CF1401E Divide Square
题目描述
在坐标平面上有一个边长为 $10^6$ 的正方形,其四个顶点分别为 $(0, 0)$、$(0, 10^6)$、$(10^6, 0)$ 和 $(10^6, 10^6)$。
你将在平面上画若干线段。所有线段均为水平或垂直线段,并且每条线段都与正方形的至少一条边相交。
现在你想知道,在画完所有线段后,这个正方形被分成了多少个部分。请编写程序计算正方形被分成的部分数。
输入格式
第一行包含两个整数 $n$ 和 $m$($0 \le n, m \le 10^5$),分别表示水平线段和垂直线段的数量。
接下来的 $n$ 行,每行包含三个整数 $y_i$、$lx_i$ 和 $rx_i$($0 < y_i < 10^6$;$0 \le lx_i < rx_i \le 10^6$),表示一条水平线段的两个端点为 $(lx_i, y_i)$ 和 $(rx_i, y_i)$。
再接下来的 $m$ 行,每行包含三个整数 $x_i$、$ly_i$ 和 $ry_i$($0 < x_i < 10^6$;$0 \le ly_i < ry_i \le 10^6$),表示一条垂直线段的两个端点为 $(x_i, ly_i)$ 和 $(x_i, ry_i)$。
保证没有两条线段在同一条直线上,且每条线段都与正方形的至少一条边相交。
输出格式
输出画完所有线段后,正方形被分成的部分数。
说明/提示
样例如下图所示:

由 ChatGPT 4.1 翻译