{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003eAlice 和 Bob 正在玩牌。他们每个人手上都有 $$$n$$$ 张卡片,每张卡片上都有一个数字。他们将进行 $$$n$$$ 轮游戏,每一轮中,每个玩家都会打出一张之前未打出过的卡片。当 Alice 和 Bob 在一轮中各自打出一张卡片后,他们会比较卡片上的数字,数字较大的玩家将赢得这一轮。如果两张卡片上的数字完全相同,那么这一轮将是平局。\u003c/p\u003e\u003cp\u003eAlice 有着非常强烈的竞争心。她不想在任何一轮中输掉。如果在任何一轮中她发现自己打出的卡片上的数字比 Bob 打出的小,她会作弊多次。作弊一次,她可以将自己卡片上的数字增加 $$$k$$$,并且她会在一轮中持续作弊,直到她卡片上的数字 \u003cspan class\u003d\"tex-font-style-bf\"\u003e不再比\u003c/span\u003e Bob 卡片上的数字小。\u003c/p\u003e\u003cp\u003e然而,作弊是非常危险的,因此她希望最小化作弊次数。为了实现这一目标,她设法知道了 Bob 将打出的卡片序列,并且她可以确定自己手中卡片的打出顺序。请帮助她计算最小作弊次数。\u003c/p\u003e\u003cp\u003e形式上,我们可以用 $$$a_1,a_2,\\ldots,a_n$$$ 表示 Alice 手中的卡片,用 $$$b_1,b_2,\\ldots,b_n$$$ 表示 Bob 将打出的卡片序列。你应该找到 $$$n$$$ 的一个排列,用 $$$c_1,c_2,\\ldots,c_n$$$ 表示,使得 \u003c/p\u003e\u003cp\u003e$$$$$$ \\sum\\limits_{i\u003d1}^n\\left\\lceil \\frac{\\max(b_i-a_{c_i},0)}k\\right\\rceil $$$$$$ \u003c/p\u003e\u003cp\u003e被最小化。你应该输出最小化的值和可能的序列 $$$c_1,c_2,\\ldots,c_n$$$。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e第一行包含两个整数 $$$n$$$ ($$$1\\leq n\\leq 10^5$$$) 和 $$$k$$$ ($$$1\\leq k \\leq 10^9$$$),表示每个玩家手中的卡片数量和每次作弊可以增加的数字。\u003c/p\u003e\u003cp\u003e第二行包含 $$$n$$$ 个整数 $$$a_1,a_2,...,a_n$$$ ($$$1\\leq a_i\\leq 10^9$$$),表示 Alice 手中的卡片。\u003c/p\u003e\u003cp\u003e第三行包含 $$$n$$$ 个整数 $$$b_1,b_2,...,b_n$$$ ($$$1\\leq b_i\\leq 10^9$$$),表示 Bob 将打出的卡片序列。注意 Bob 将按照该序列的顺序打出卡片。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e你应该输出两行。\u003c/p\u003e\u003cp\u003e在第一行,输出一个整数,表示最小作弊次数。\u003c/p\u003e\u003cp\u003e在第二行,输出 $$$n$$$ 个整数 $$$c_1,c_2,...,c_n$$$,表示 Alice 打出卡片的顺序以最小化作弊次数。也就是说,Alice 将在第 $$$i$$$ 轮打出数字为 $$$a_{c_i}$$$ 的卡片。如果存在多个答案,输出任意一个即可。\u003c/p\u003e"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e4 2\n2 7 6 4\n3 9 1 8\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\n4 2 1 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}