#P5560. Cow Steeplechase

Cow Steeplechase

题目描述

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

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

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

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

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

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

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

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

输入格式

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

输出格式

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

样例

输入样例

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

输出样例

3

提示

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

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