문제 링크
- http://icpc.me/2519
문제 출처
- 2012 전국 본선 고등부4
사용 알고리즘
- 2-SAT
- CCW
풀이
x번 사람은 3x, 3x+1, 3x+2번 막대기를 갖고 있고, 3개의 막대기 중 최대 1개까지만 제거할 수 있습니다.
그러므로
- 3x와 ¬3x+1
- 3x와 ¬3x+2
- 3x+1와 ¬3x
- 3x+1와 ¬3x+2
- 3x+2와 ¬3x
- 3x+2와 ¬3x+1 총 6개의 쌍을 함의 그래프 상에서 이어줍시다.
막대기는 서로 교차하면 안 됩니다. 선분의 교차는 ccw알고리즘을 이용하여 할 수 있습니다. x, y번 막대기가 교차한다면, ¬x와 y, ¬y와 x를 함의그래프 상에서 이어줍시다.
SCC를 돌려준 뒤, 변수의 값을 잘 확정지어주면 문제를 풀 수 있습니다.
전체 코드
1 |
|