#1603. USACO 2011 年 11 月比赛 黄金组 Cow Steeplechase

USACO 2011 年 11 月比赛 黄金组 Cow Steeplechase

题目描述

农夫约翰计划在草地上布置 N 条障碍线段(1 ≤ N ≤ 250),每条线段要么水平、要么垂直,且互不平行。

  • 水平线段:两个端点的 y 坐标相同,x 坐标不同。
  • 垂直线段:两个端点的 x 坐标相同,y 坐标不同。

两条线段**只要有一个公共点(含端点)**即算相交。
已知:

  • 所有水平线段之间 两两不相交
  • 所有垂直线段之间 两两不相交

你的任务:选出最大数量的线段,使得它们两两不相交

输入格式

  • 第 1 行:一个整数 N,表示线段数量。
  • 接下来 N 行:每行 4 个空格分隔的整数
    x1 y1 x2 y2,描述一条线段。
    • y1 == y2 则为水平线段;
    • x1 == x2 则为垂直线段。

输出格式

  • 第 1 行:一个整数,表示最多可选的不相交线段数

样例

样例输入

3
4 5 10 5
6 2 6 12
8 3 8 5

样例输出

2

样例解释

  • 线段 1:(4,5)-(10,5) 水平
  • 线段 2:(6,2)-(6,12) 垂直
  • 线段 3:(8,3)-(8,5) 垂直

线段 2 与线段 3 互不相交,且均不与线段 1 相交,故可选 {2,3},共 2 条。

数据范围与提示

  • 坐标范围:1 ≤ x, y ≤ 1 000 000 000。
  • 保证:
    • 任意两条水平线段不相交;
    • 任意两条垂直线段不相交。