座標圧縮
結果を入れる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 ;
}