HPU 1278: Decryption sequence

来源:互联网 发布:网络文明调查问卷前言 编辑:程序博客网 时间:2024/06/09 15:47

题目描述

加密是个被广泛关注的问题,现在给出一种对数列加密的算法:

假设有原数列S,S是1到2n2n的一个排列(下标从1开始),因此其中共有2n2n个整数。

现在定义一个数列P,满足:

Pi={ji(Simod2=1Sj=Si+1)()Pi={j(Simod2=1且Sj=Si+1)i(否则)

同时我们通过以下操作由S生成另一个数列T:第一步将S所有奇元素删除,第二步把剩下的所有偶元素按照原来的位置关系排列好,并都除以2,这样得到一个新的数列。

例如:

对于数列S={4,8,3,2,5,7,1,6},我们可以生成数列P={1,2,1,4,8,2,4,8},数列T={2,4,1,3}。

我们把数列P称为密文,T称为密钥,顾名思义通过这两个数列,可以还原出原数列。

现在请你完成数列的解密程序。

输入

多组测试数据(不超过10组),请处理到文件结束。

第一行是一个正整数m(0<m<1000<m<100),代表原数列元素的个数。

第二行有m个正整数PiPi,表示数列P。

第三行有m/2个正整数TiTi,表示数列T。

输出

请输出原数列S,元素中间以一个空格隔开。

样例输入

81 2 1 4 8 2 4 82 4 1 3

样例输出

4 8 3 2 5 7 1 6
0 0
原创粉丝点击