以下の内容はhttps://drken1215.hatenablog.com/entry/2024/09/24/110851より取得しました。


鉄則本 A15 - Compression (3Q, ★3)

座標圧縮せよ、という問題

問題概要

長さ  N の数列  A_{1}, A_{2}, \dots, A_{N} が与えられるので、座標圧縮せよ。

制約

  •  1 \le N \le 10^{5}

考えたこと

座標圧縮は次の記事に詳しく書いた。

drken1215.hatenablog.com

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> A(N), B;
    for (int i = 0; i < N; i++) cin >> A[i];

    B = A;
    sort(B.begin(), B.end());
    B.erase(unique(B.begin(), B.end()), B.end());
    for (auto a : A) {
        cout << lower_bound(B.begin(), B.end(), a) - B.begin() + 1 << " ";
    }
    cout << endl;
}



以上の内容はhttps://drken1215.hatenablog.com/entry/2024/09/24/110851より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14