算法与数据结构实验题 2.2 逆序数

★实验任务 Nk 最近喜欢上了研究逆序数,给出一个由 1…n 组成的数列 a1,a2,a3…an,a1 的逆序数就是在 a2…an 中,比 a1 小的数的数量,而 a2 的逆序数就是 a3….an 中 比 a2 小的数的数量,以此类推。例如,数列 5,3,4,2,1 的逆序数序列就是 4,2,2,1,0. 那么,如果给出一个数列的逆序数序列,你能不能还原得到他的原数列?
★数据输入
每个测试数据是一个正整数 n。代表数列长度(1<=n<=500),并且原数列中 的值的范围是[1,n]。 然后输入 n 个正整数 ai(0<=ai< n)。
★数据输出 输出原始数列,两个数字间中间用空格隔开
输入示例
5
4 2 2 1 0
输出示例
5 3 4 2 1

/*
 * nixushu.cpp
 *
 *  Created on: 2016年9月8日
 *      Author: CJDM66
 */
#include<iostream>
#include<vector>
using namespace std;
int main(void){
    vector<int> ori,nixu;
    int i,n,ex;
    cin>>n;
    for(i=0;i<n;i++){
        ori.push_back(i+1);
        cin>>ex;
        nixu.push_back(ex);
    }
    for(i=0;i<n;i++){
        cout<<ori[nixu[i]]<<" ";
        ori.erase(ori.begin()+nixu[i]);
    }
}

猜你喜欢

转载自blog.csdn.net/cjdm66/article/details/52637592