CF1214F Employment

题目描述

两家大型公司“Cecsi”和“Poca Pola”长期以来一直在相互竞争。为了击败对手,“Poca Pola”启动了一个超级机密项目,该项目在所有办公室总共有 $n$ 个空缺职位。经过多轮测试和面试后,选出了 $n$ 名候选人,现在只剩下雇佣他们这一步。 由于所有候选人的能力相同,因此他们在哪个办公室工作并没有区别。因此,公司决定将候选人分配到各个工作地点,使得所有候选人从家到工作地点的总距离最小。 众所周知,地球是圆的,因此可以用一个圆来描述,地球上的 $m$ 个城市可以表示为这个圆上的点。所有城市从 $1$ 到 $m$ 编号,对于每个 $i$($1 \le i \le m - 1$),编号为 $i$ 和 $i+1$ 的城市是相邻的,编号为 $1$ 和 $m$ 的城市也是相邻的。人们只能沿着圆移动。任意两个城市之间的距离等于从一个城市到另一个城市所需经过的最少相邻城市数。特别地,一个城市到自身的距离为 $0$。 “Poca Pola”的空缺职位分布在城市 $a_1, a_2, \ldots, a_n$。候选人居住在城市 $b_1, b_2, \ldots, b_n$。可能有多个职位在同一个城市,也可能有多个候选人住在同一个城市。 “Poca Pola”的管理层因为太忙于超级机密项目,所以请你帮忙,将候选人分配到各个工作地点,使得所有候选人从家到工作地点的总距离最小。

输入格式

第一行包含两个整数 $m$ 和 $n$($1 \le m \le 10^9$,$1 \le n \le 200\,000$),分别表示地球上的城市数量和空缺职位数量。 第二行包含 $n$ 个整数 $a_1, a_2, a_3, \ldots, a_n$($1 \le a_i \le m$),表示空缺职位所在的城市。 第三行包含 $n$ 个整数 $b_1, b_2, b_3, \ldots, b_n$($1 \le b_i \le m$),表示候选人居住的城市。

输出格式

第一行输出所有候选人从家到工作地点的最小总距离。 第二行输出 $n$ 个不同的整数,范围从 $1$ 到 $n$。第 $i$ 个数表示应分配到第 $i$ 个工作地点的候选人的编号。

说明/提示

在第一个样例中,每个候选人到其工作地点的距离均为 $1$(从 $1$ 到 $10$,从 $4$ 到 $5$,从 $6$ 到 $5$)。 在第二个样例中: - 第二位候选人被分配到第一个工作地点,城市 $3$ 到 $1$ 的距离为 $2$。 - 第三位候选人被分配到第二个工作地点,城市 $6$ 到 $4$ 的距离为 $2$。 - 第一位候选人被分配到第三个工作地点,城市 $8$ 到 $8$ 的距离为 $0$。 由 ChatGPT 4.1 翻译