# [语言月赛202210] 配餐
## 题目描述
午饭时间,喵喵喵幼儿园的 $n$ 位小朋友从左到右排成一列等待领取自己的午餐。我们将这些小朋友从左到右依次标号为 $1, 2, \cdots , n - 1, n$。
负责配餐的老师已经拿到了所有人的午饭餐食,餐食同样也是从左到右排成一排。
老师手里拿到了一份序列 $r _ 1 \cdots r _ n$,代表编号为 $i$ 的小朋友应该拿到从左向右数第 $r _ i$ 份午餐餐食($1 \leq r _ i \leq n$ 且 $r _ i$ 两两不同)。
按照上面的序列分发完成后,老师又拿到了一个序列 $a _ 1 \cdots a _ n$,其中 $a _ i$ 代表未分发前从左向右数第 $i$ 份餐食的**一个参数**。
老师想要知道,对每个小朋友,他们所拿到的午餐的**这个参数**的值是多少。但是这个任务对于老师来说太难了,所以喵喵喵幼儿园找到了万能的你。
## 输入格式
共三行。
第一行一个整数,代表 $n$。
第二行 $n$ 个整数,代表 $r _ 1 \cdots r _ n$。
第三行 $n$ 个整数,代表 $a _ 1 \cdots a _ n$。
## 输出格式
一行,$n$ 个整数。第 $i$ 个整数代表编号为 $i$ 的小朋友所拿到的午餐的**这个参数**是多少。
## 样例 #1
### 样例输入 #1
```
4
4 1 3 2
7 4 2 9
```
### 样例输出 #1
```
9 7 2 4
```
## 提示
**样例解释**
编号为 $1$ 的小朋友拿到了第四份餐食,参数为 $9$。
编号为 $2$ 的小朋友拿到了第一份餐食,参数为 $7$。
编号为 $3$ 的小朋友拿到了第三份餐食,参数为 $2$。
编号为 $4$ 的小朋友拿到了第二份餐食,参数为 $4$。
**数据规模与约定**
本题共 $10$ 个测试点。
对第一个测试点,保证 $n = 2, r_1 = 1, r_2 = 2$。
对第二个测试点,保证 $n = 2$。
对第三、四个测试点,保证 $n \leq 100$。
对第五、六个测试点,保证对任意的 $1 \leq i \leq n, r _ i = i$。
对全部的测试点,保证 $2 \leq n \leq 1 \times 10 ^ 5, 1 \leq a _ i \leq 10 ^ 9, 1 \leq r _ i \leq n$ 且不存在一对 $(i, j)$ 使得 $r_i = r_j$。
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 午餐餐序 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); Map<Integer,Integer> map=new HashMap<>(); for (int i = 0; i < n; i++) { int x=sc.nextInt(); map.put(i,x); } int [] a=new int[n]; for (int i = 0; i < n; i++) { a[i]=sc.nextInt(); } for (int i = 0; i < n; i++) { int get= map.get(i); System.out.print(a[get-1]); System.out.print(" "); } } }