序列的离散化
时间限制:1秒 内存限制:256M
【题目描述】
对于一个数据元素很大的序列:\(A_1,A_2,…,A_n\),我们在处理这个序列时,往往只会关心序列中元素的大小关系。这时候为了处理方便,可把序列映射为 \(1\sim n\)范围内的数,其中最小的元素映射为 1,第 2 小的数映射为2,……。例如:
原 序 列:19827345 2000000053 73925 98203456 73925 19827345
映射序列: 2 4 1 3 1 2
由此可以看出,映射序列于原序列元素间的大小关系是等价的,在这里我们把“映射序列”又称为“名次序列”。
所以,离散序列实质就是原序列每个元素用它的名次代替(相同的元素名次相同),离散化就是要得到序列的名次数组。
【输入格式】
第 1 行,为整数 \(n\) ,表示序列有 \(n\) 个实数。
第 2 行包含 \(n\) 个实数,表示序列:\(A_1\sim A_n\)。
【输出格式】
包含 \(n\) 个整数,与原序列等价的名次序列。
【输入输出样例】
Input
6
10.5 8.1 9.22 3.33 6.23 8.1
Output
5 3 4 1 2 3
【数据限制】
对于 \(100\%\) 的数据,\(1≤n≤100000\),A[i]在double范围内。
【来源】
Mr.he