#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <map> #include <stack> using namespace std; typedef long long ll; struct sss { int val; //原来的数值 int order; //原来的下表 }a[100005]; int b[100001]; //b数组储存离散化后,数据为1-N,下表也是1-N的数据 bool cmp(sss x, sss y) { return x.val < y.val; } int main() { int n; cin >> n; for (int i=1;i<=n;i++) { cin >> a[i].val; a[i].order = i; } sort(a+1, a+1+n, cmp); //对结构体按照a数组排序 //如果没有相同的元素 // for (int i=1;i<=n;i++) // { // b[a[i].order] = i; // } //如果有相同的元素 // b[a[1].order]=1; // int cnt = 1; // for (int i=2;i<=n;i++) // { // if(a[i].val == a[i-1].val) b[a[i].order] = cnt; // else b[a[i].order] = ++cnt; // } // for (int i=1;i<=n;i++) // { // cout << b[i] << " "; // } // cout << endl; return 0; }