#12006. 旅程

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: root

题目描述

「十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,躬逢胜饯。」
——王勃《滕王阁序》

Bardisk 喜欢拜访朋友。趁一次长假,他想去拜访在各地的朋友们并回到出发地。Bardisk当然希望他在路程上花费的时间最短,但是在算法理论课上他学到,这个问题是NP难的,即很难在多项式时间内解决。因此他不要求你给出一个精确的解,他会估计一个代价不超过最优解两倍的解,并希望你给出一个代价不超过这个估计解两倍的估计解。

具体地,有 个点,编号从 到 。每个点有一个坐标,点间的距离就是它们之间的曼哈顿距离。现需从 号点出发,经过一条哈密顿回路后返回一号点。请你给出经过的总距离的最小值的一个估计值和对应的解。你的估计值需要和你的方案相匹配,且不应超过答案给出估计解的两倍。

输入格式

第一行一个正整数 ,含义如题。

接下来 行,每行两个整数 ,,表示点的坐标。

输出格式

第一行输出一个非负整数,表示估计解的代价。

接下来一行 个正整数,表示解的路径上除了一号点以外的其他点。

样例

样例输入

4
1 1
-1 -1
2 1
1 0

样例输出

10
3 2 4

数据范围与提示

对于前 的数据,。

对于前 的数据,。

对于前 的数据,。

对于 的数据,,。

本题本意考察最小生成树,但你也可以试图乱搞。