#P16929. [SGU313]Circular Railway

[SGU313]Circular Railway

题目描述

有一条环形铁路,共有 LL 个车站,编号为 1,2,,L1,2,\ldots,L。列车可以沿两个方向运行,相邻车站之间的行驶时间均为 11 分钟,其中车站 LL 与车站 11 也相邻。

铁路沿线有 nn 名员工的住宅和 nn 个办公室。每个住宅和办公室都位于某个车站附近。

现在需要在住宅与办公室之间建立一个一一对应关系:每名员工被分配到一个不同的办公室。员工从住宅所在车站前往办公室所在车站时,总是选择环形铁路上的较短方向。

请安排这种一一对应关系,使所有员工的总通勤时间最小。

输入格式

第一行包含两个整数 n,Ln,L

  • 1n500001\le n\le 50000
  • 2L1092\le L\le 10^9

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示各员工住宅所在的车站。

第三行包含 nn 个整数 b1,b2,,bnb_1,b_2,\ldots,b_n,表示各办公室所在的车站。

每个位置均为 11LL 之间的整数。多个住宅或办公室可以位于同一个车站。

输出格式

第一行输出最小总通勤时间。

第二行输出 nn 个整数。第 ii 个整数表示第 ii 名员工被分配到的办公室编号,办公室按照输入顺序从 11nn 编号。

如果存在多种最优方案,可以输出任意一种。

样例 1

3 15
1 2 10
11 12 13

一种合法输出为:

9
2 3 1

样例 2

4 12
2 5 8 11
6 9 12 3
4
4 1 2 3