# [语言月赛202210] 配餐 java

# [语言月赛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(" ");


        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值