Skip to content

Argsort

c++

1
2
3
4
5
6
7
8
auto argsort = [&](int i, int j){
    // [-PI, PI)でソート
    long double thetai = atan2l(y[i], x[i]);
    long double thetaj = atan2l(y[j], x[j]);
    return thetai < thetaj;
};
vector<int> p(N); for(int i=0; i<N; i++) p[i] = i;
sort(p.begin(), p.end(), argsort);