编码问题

Grade 0 Open Time Thursday, 21 February 2013, 11:02 pm
Discount 0.8 Time Discount Thursday, 28 February 2013, 11:02 pm
Allow late Yes Close Time Thursday, 28 February 2013, 11:02 pm
Input file code.in Output file code.out
【问题描述
    设有一个数组 A : ARRAY[0..N-1] OF INTEGER ;数组中存储的元素为 0-N-1 之间的整数,且 A[I] ≠ A[J] ( 当 I ≠ J) 时。
例如: N=6 时,有:( 4 , 3 , 0 , 5 , 1 , 2 )
此时,数组 A 的编码定义如下:
A[0] 的编码为 0 :
A[I] 的编码为:在 A[0] , A[1] ,…… A[I-1] 中比 A[I] 的值小的元素的个数( I=1 , 2 ,…… N-1 )
所以上面数组 A 的编码为 :B=(0,0,0,3,1,2)
程序要求解决以下问题
① 给出数组 A 后,求出其编码;

② 给出数组 A 的编码后,求出 A 的原数据。

【输入格式】
    输入由若干行组成:
第一行有两个整数,m,n(1≤n,m≤100);n表示数组长度,m表示问题个数。
下面有2*m行,每两行是一个问题,每个问题的第一行是一个数字s,s=1时表示根据数据求编码,s=2时表示根据编码求数据,第二行是n个数,中间用空格隔开。
【输出格式】
    输出数据有m行,每行表示一个问题的答案。
【输入输出样例】
输入文件名:code.in
2 6
1
4 3 0 5 1 2
2
0 0 0 3 1 2
输出文件名:code.out
0 0 0 3 1 2
4 3 0 5 1 2