// 座標圧縮してあとは愚直 int cc(int n, int arr[], ll values[], void *mem = wmem){ int i; int k = 0; int j; pair*r; walloc1d(&r, n, &mem); for(i=(0);i<(n);i++){ r[i].first = arr[i]; r[i].second = i; } sort(r, r+n); j=r[0].first; for(i=(0);i<(n);i++){ if(i && r[i].first != j){ values[k]=values[j]; while(++j