#2048. Cow Steeplechase

Cow Steeplechase

题目描述

农夫约翰对下一项伟大的观赏性运动有一个绝妙的主意:牛障碍赛!众所周知,常规障碍赛涉及一群马在充满障碍的赛道上赛跑,他们必须跳过障碍。FJ\red{FJ }认为同样的比赛应该适用于训练有素的奶牛,只要障碍物足够短。

为了设计他的课程,FJ\red{FJ }制作了一张图表,列出了他可能建立的所有 N(1<=N<=250)\red{N (1 <= N <= 250) }个可能的障碍。每一个都由 2D\red{2D }平面中的一条线段表示,该线段平行于水平或垂直轴。障碍 i\red{i }具有不同的端点 (X1i,Y1i)\red{(X1_i, Y1_i) }(X2i,Y2i)(1<=X1i,Y1i,X2i,Y2i<=1,000,000,000)\red{(X2_i, Y2_i) (1 <= X1_i, Y1_i, X2_i, Y2_i <= 1,000,000,000)}。一个例子如下:

--+-------   
-----+-----
  ---+---     |
     |     |  |
   --+-----+--+-   |
     |     |  |  | |
     |   --+--+--+-+-
           |  |  | |
              |

FJ\red{FJ }想尽可能多地建造这些障碍,但要遵守它们中没有两个相交的限制。从上图开始,FJ\red{FJ }可以搭建 7\red{7 }个障碍物:

----------   
-----------
  -------     |
           |  |
           |  |    |
           |  |  | |
           |  |  | |
           |  |  | |
              |

如果两个线段共享任何共同点,甚至是其中一个或两个线段的端点,则称它们相交。FJ\red{FJ }确定原始输入图中的两个水平线段不会相交,同样输入图中的两个垂直线段也不会相交。

请帮助 FJ\red{FJ }确定他可以建造的最大障碍数。

给出N\red{N}平行于坐标轴的线段,要你选出尽量多的线段使得这些线段两两没有交点(顶点也算),横的与横的,竖的与竖的线段之间保证没有交点,输出最多能选出多少条线段。

输入格式

1\red{1 }行:单个整数:N\red{N}。第 2..N+1\red{2..N+1 }行:第 i+1\red{i+1 }行包含四个以空格分隔的整数,表示障碍物:X1i\red{X1_i}Y1i\red{Y1_i}X2i\red{X2_i }Y2i\red{Y2_i}

输出格式

1\red{1 }行:FJ\red{FJ }可以选择的最大非交叉段数。

样例

输入样例

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

输出样例

3

提示

存在三个潜在障碍。第一个是连接 (4,5)\red{(4, 5) }(10,5)\red{(10, 5) }的水平线段;第二个和第三个是连接 (6,2)\red{(6, 2) }(6,12)\red{(6, 12) }(8,3)\red{(8, 3) }(8,5)\red{(8, 5) }的垂直段。

最佳解决方案是选择两个垂直段。