离散化标程

#include<bits/stdc++.h>
using namespace std;
const int maxn = 102;
int n,a[maxn],b[maxn];
int main(){
  cin >> n;
  for(int i = 1;i <= n;++i) cin >> a[i];
  for(int i = 1;i <= n;++i) b[i] = a[i];
  sort(a + 1,a + n + 1);
  int len = unique(a + 1,a + n + 1) - a - 1;
  for(int i = 1;i <= len;++i)
    b[i] = lower_bound(a + 1,a + n + 1,b[i]) - a;
  for(int i = 1;i <= len;++i)
    cout << b[i] << " ";
  return 0;
}
/*
输入:
5
4000 201 11 45 11 
输出: 
4 3 1 2 
*/
posted @ 2023-08-23 09:20  CultReborn  阅读(9)  评论(0)    收藏  举报