前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PAT-2021年秋季考试 乙级 7-5 取帽子 (25 分)

PAT-2021年秋季考试 乙级 7-5 取帽子 (25 分)

原创
作者头像
freesan44
修改2021-09-14 10:39:39
3670
修改2021-09-14 10:39:39
举报
文章被收录于专栏:freesan44freesan44

题目

image.png
image.png

拼题er们觉得戴帽子会令自己看上去很帅,所以他们不管到哪里都会戴着帽子。有一天他们去到一家餐厅,服务员把他们的帽子收集了堆起来保管。当大家要离开的时候,发现帽子被像上图那样摞起来了。于是你的任务就是帮他们排好队,使得每个人都能按顺序顺利取到自己的帽子。

已知每顶帽子的大小都不相同,并且帽子的尺寸跟帽子主人的体重有关 —— 越重的人戴的帽子就越大。

输入格式:

输入第一行给出一个正整数 N (≤10

4

),为拼题er的人数。随后一行给出 N 个不同的帽子尺寸,为不超过 10

5

的正整数,顺序是从帽子堆的底部向上给出。最后一行给出 N 个不同的体重,顺序对应编号从 1 到 N 的拼题er。体重是不超过 10

6

的正整数。一行中的数字以空格分隔。

输出格式:

在一行中按照取帽子的顺序输出帽子主人的编号。数字间以 1 个空格分隔,行首尾不得有多余空格。

代码语言:txt
复制
输入样例:
10
12 19 13 11 15 18 17 14 16 20
67 90 180 98 87 105 76 88 150 124
输出样例:
3 4 8 6 10 2 1 5 9 7

样例说明:

第一顶帽子的尺寸是最大的 20,所以对应第 3 个人的最大体重 180,于是第 3 个人排在最前面。

第二顶帽子的尺寸是第 6 小的 16,对应第 6 小的体重 98,是第 4 个人,于是第 4 个人下一个走。

以此类推。

解题思路

代码语言:txt
复制
N = int(input())
maoList = list(map(int,input().split()))
renList = list(map(int,input().split()))
# N = int("10")
# maoList = list(map(int,"12 19 13 11 15 18 17 14 16 20".split()))
# renList = list(map(int,"67 90 180 98 87 105 76 88 150 124".split()))

sourtMaoList = sorted(maoList,reverse=True)
sourtRenList = sorted(renList,reverse=True)
resDict = dict()
renListDict = dict()
for index,val in enumerate(renList):
    renListDict[val] = index
for i in range(N):
    mao = sourtMaoList[i]
    ren = sourtRenList[i]
    # index = renList.index(ren)
    index = renListDict[ren]
    resDict[mao] = str(index+1)
# print(resDict)
res = []
for i in maoList:
    res.append(resDict[i])
print(" ".join(res[::-1]))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档