#YHW1603. 重新数组

重新数组

题目描述

Tk 拥有两个长度均为 nn 的数组:{a1,a2,⋯ ,an}\{a_1, a_2, \cdots, a_n\} 与 {b1,b2,⋯ ,bn}\{b_1, b_2, \cdots, b_n\}。现定义一个新数组 cc,其中 ci=ai×bi×ic_i = a_i\times b_i\times i(ii 表示元素在数组中的下标,从 11 开始)。你的任务是通过重新排列数组 bb 的元素顺序,使得数组 cc 的所有元素之和达到最大,并输出重新排列后的数组 bb。

输入格式

输入将从标准输入读取,格式如下:

  • 第一行包含一个整数 nn(1≤n≤2×1051 \leq n \leq 2\times10^5),表示数组 aa 和 bb 的长度。
  • 第二行包含 nn 个整数 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n(1≤ai≤1091 \leq a_i \leq 10^9),表示数组 aa 的元素。
  • 第三行包含 nn 个整数 b1,b2,⋯ ,bnb_1, b_2, \cdots, b_n(1≤bi≤1091 \leq b_i \leq 10^9),表示数组 bb 的元素。

输出格式

你的程序应向标准输出打印一行,包含 nn 个整数,即重新排列后的数组 bb 的元素。保证答案唯一。

样例

样例输入

3
3 2 1
2 2 3

样例输出

2 3 2

数据范围

对于所有测试点,

  • 1≤n≤2×1051 \leq n \leq 2\times10^5,
  • 1≤ai≤1091 \leq a_i \leq 10^9,
  • 1≤bi≤1091 \leq b_i \leq 10^9。