#46. 渡轮问题

渡轮问题

题目描述

Palmia 河在某国从东向西流过,并把该国分为南北两个部分。河的两岸各有 N 座城市,且北岸的每一个城市都与南岸的某个城市是友好城市, 而且友好关系是一一对应的。现在要求在两个友好城市之间建立一条航线,但由于天气的原因,所有航线都不能相交,因此,就不可能给所有的友好城市建立航线。 问题:当给出城市个数和友好关系的信息之后,选择一种修建航线的方案,能建最多的航线而不相交。

格式

输入格式

第1行:2个空格分开的整数X, Y,X (10≤X≤6000)表示Palmia河岸的长度,Y(10≤Y≤ 100)表示河的宽度 第2行:1个整数N (1≤N≤5000),表示在河两岸分别有多少座城市 接下来N行:每行2个空格分开的非负整数C、D(C,D ≤X),表示河两岸的一对友好城市从河最西端算起的坐标(C表示北岸的城市,D表示南岸的城市),在同一岸上没有两座城市的坐标相同。

输出格式

第1行: 最多能建立航线的数量K 接下来K行:每行2个用1个空格分开的整数,按北岸城市的坐标从小到大的顺序输出建立航线的K对友好城市的坐标。若有多种方案,选择北岸城市(从后往前数起)编号大的那种方案

样例

30 4
7
22 4
2 6
10 3
15 12
9 8
17 17
4 2
4
4 2
10 3
15 12
17 17

Limitation

1s, 1024KiB for each test case.