题目描述
Lena 喜欢秩序井然的生活。一天,她要去上大学时发现整个房间乱糟糟的,她的手提包里的物品都散落在了地上,于是她想把所有的物品都放回她的手提包。
但是,她一次最多只能拿两个物品,她也不能移动她的手提包。并且,因为她爱整洁的习惯,如果她拿起了一个物品,她也不能将它放在其他地方,除非放回她的手提包。
Lena 把她的房间划分为了一个平面直角坐标系。现在Lena 给你她和每个散落的物品的坐标。她从坐标 (x1,y1) 走到坐标 (x2,y2) 需要用 (x1−x2)2+(y1−y2)2 的单位时间。现在,Lena 将告诉你她的房间的情况,请你为 Lena 找到一个拾起每个物品的顺序,使她拾起所有物品所需的总时间最小。当然,Lena 最后需要返回她的手提包。
输入格式
输入文件的第一行为Lena的手提包的坐标 xs,ys。
第二行为一个正整数 n ,表示总的需要拾起的物品数。接下来的 n 行每行包括两个整数,表示每个物品的坐标。
输出格式
输出的第一行为一个正整数,表示 Lena 拾起所有物品所需的最小时间。
输出的第二行为 Lena 拾起每个物品的顺序。她应该从手提包(编号 0)出发,在手提包(编号 0)结束。如 0 1 2 0 3 0 表示她从手提包出发,先拾起 1 号物品,再拾起 2 号物品,然后返回手提包放下两个物品,再拾起 3 号物品,最后返回手提包。
如果有多条允许的路径,输出任一条。