離散化模板題 II ——重複元素離散化後的數字不相同
阿新 • • 發佈:2020-12-02
離散化模板題 II ——重複元素離散化後的數字不相同
題目描述
現有數列A1,A2,⋯,An,數列中可能有重複元素。現在要求輸出該數列的離散化數列,重複元素離散化後的數字不相同。
輸入
第一行,一個整數n。第二行,n個整數整數A1,A2,⋯,An。
輸出
一行,包括n整數。表示數列對應的離散化數列,重複元素離散化後的數字不相同。樣例輸入
6
1 23424 242 65466 242 0
樣例輸出
1 4 2 5 3 0
程式碼:
#include <bits/stdc++.h> using namespace std;struct node{ int num,id; }; bool cmp( node a,node b ){ return a.num<b.num; } int main(){ int n; cin>>n; node *arr = new node[n+1]; for (int i = 0; i < n; i++){ cin>>arr[i].num; arr[i].id=i; } sort(arr,arr+n,cmp); for (int i = 0; i < n; i++){ arr[arr[i].id].num=i; } for (int i = 0; i < n; i++){ cout<<arr[i].num<<" "; } }