渡轮问题

成绩 0 开启时间 2013年01月15日 星期二 15:50
折扣 0.8 折扣时间 2013年01月15日 星期二 15:50
允许迟交 关闭时间 2013年01月15日 星期二 15:50
输入文件 maxxl.in 输出文件 maxxl.out

Palmia 河在某国从东向西流过,并把该国分为南北两个部分。河的两岸各有 n 个城市,且北岸的每一个城市都与南岸的某个城市是友好城市,而且对应的关系是一一对应的。现在要求在两个友好城市之间建立一条航线,但由于天气的关系,所有航线都不能相交,因此,就不可能给所有的友好城市建立航线。

问题:当城市个数和友好关系建立之后,选择一种修建航线的方案,能建最多的航线而不相交。(若有多种方案,修建航线最多且城市数量相同,选择从前到后城市标号字典序小的那种方案.)

【输入格式】

输入由若干行组成,第一行有一个整数,n(1≤n≤10000);表示城市数。第2至n+1行依次是南岸城市的北岸友好城市编号。

【输出格式】

输出共两行,第一行是建立航线的数量。第二行是建立航线的北岸城市编号。

【输入样例】

输入文件名:maxxl.in

14
13
7
9
16
38
24
37
18
44
19
21
22
63
15

【输出样例】

输出文件名:maxxl.out

8
7 9 16 18 19 21 22 63