座標圧縮

結果を入れるmap、逆の復元用のvector、圧縮したいvector を入れる

mapに圧縮前の座礁を入れると圧縮後の座標が帰ってくる

vectorに圧縮後の座標を入れると圧縮前の座標が帰ってくる

void ash(map<int,int>& m,vector<int>& g,vector<int> v){
    int n = v.size();
    m.clear();
    sort(v.begin(),v.end());
    int j = 0;
    for(int i = 0;i < n;i++){
        if(m.count(v[i]))continue;
        m[v[i]] = j;
        while ((int)g.size() <= j) g.push_back(0);
        g[j] = v[i];
        j++;
    }
    return ;
}