sort(a, a+n, [&](const pnt &a, const pnt &b){if((pi(a.x, a.y) > pi(0, 0)) ^ (pi(b.x, b.y) > pi(0, 0))) return pi(a.x, a.y) > pi(b.x, b.y);if(ccw(a, b) != 0) return ccw(a, b) > 0;return hypot(a) < hypot(b);});앞문제를 풀다가 발견한 코드. 1 2 3 4 사분면에 상관없이 각도정렬을 할 수 있다. + 5.21 업데이트. 각도가 같을 경우 거리순으로 정렬한다. (hypot(p) = p.x^2 + p.y^2, pi = make_pair) + 2017.8.14 업데이트. 코드 길이를 많이 줄였다.
1. Antenna http://amugelab.tistory.com/entry/problem-solving-20160130 에 있는 phone cell 문제 + binary search. https://github.com/koosaga/olympiad/blob/master/CEOI/ceoi06_antenna.cpp 2. Queue N이 작은 케이스에서 시작하자. 이 때는 linked list의 요령으로 문제를 풀 수 있다. prev(i) = i번의 왼쪽 원소, next(i) = i번의 오른쪽 원소라고 했을때, 초기값은 i-1, i+1로 가득 차 있고, 질의가 들어왔다면, 일단 A를 삭제하고, B의 앞에 A를 박으면 된다. 방법은 생략. 이러한 식으로 처리한 후, 후에 배열의 값을 모두 저장해놓고, 그냥..
- Total
- Today
- Yesterday