문제 링크
- http://icpc.me/10523
문제 출처
- 2014 NWERC 2014 F번
사용 알고리즘
- 랜덤!
풀이
정해는 분할 정복이라고 하지만, 분할 정복은 어렵기 때문에 이상한 전략을 생각해봅시다.
직선이 존재하는지/존재하지 않는지 판단만 하면 됩니다.
두 점을 랜덤으로 잡아서 만든 직선 위에 P% 이상의 점이 있는지 판단하는 전략을 생각해볼 수 있습니다.
시간 제한 안에서 돌아갈 정도로만 랜덤을 돌려주면서 P% 이상의 점이 존재하는 직선이 있으면 possible을, 못 찾았으면 impossible를 출력하면 됩니다.
실제로 150번정도만 확인해보면 매우 높은 확률로 맞고, 100번정도 확인해도 꽤 높은 확률로 맞습니다.
80번정도 확인하는 코드를 짠 다음에 신중하게 제출하면 맞을 수 있긴 합니다.
전체 코드
1 |
|