HM252 给定洗牌

HM252 给定洗牌

HM252 给定洗牌

来源: 第 252 集 常用排序算法-random_shuffle

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

洗牌算法 random_shuffle 把给定区间里的元素顺序打乱,只要传入起始迭代器和结束迭代器。使用前必须包含算法头文件,否则名字不可用。

它内部也依赖随机数。若不设定随机种子,多次运行会得到**同一套**打乱结果;在程序里调用一次 srand,并把 time(NULL) 交给它(时间头文件为 ctime),才能让每次运行都不同。抽签一类需求常用这种打乱,不必自己再写一套交换逻辑。

评测环境不能依赖未固定的系统时间。本题改为:**读入一组下标置换**,按下标从原序列取出元素,得到确定的打乱结果。下标从 \(0\) 开始,保证是 \(0 \sim n-1\) 的一个排列。

输入格式

第一行一个整数 \(n\)。

第二行 \(n\) 个整数,表示原序列。当 \(n=0\) 时本行可以是空行。

第三行 \(n\) 个整数 \(p_0,p_1,\ldots,p_{n-1}\),表示置换。当 \(n=0\) 时本行可以是空行。

输出格式

一行,打乱后的序列:第 \(i\) 个位置(从 \(0\) 计)放原序列下标 \(p_i\) 上的元素。同一行内用单个空格分隔,行末换行。空序列输出空行。

样例

输入 #1

10
0 1 2 3 4 5 6 7 8 9
8 1 9 2 0 5 7 3 4 6

输出 #1

8 1 9 2 0 5 7 3 4 6

输入 #2

1
42
0

输出 #2

42

说明

\(0 \le n \le 1000\),元素绝对值不超过 \(10^9\),\(p\) 是 \(0 \sim n-1\) 的排列。

样例 #1 原序列是 \(0\sim 9\),按给定下标取出后得到确定的打乱结果,不使用系统时间种子。

信息

ID
1251
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者