서로 다른 N개 점에서 각각 하나씩 독립적으로 뽑았을 때 두 점이 45도 대각선 관계에 놓일 확률을 구한다.
보통4해시맵수학조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MBGo Northwest!는 비가 와서 야외 놀이기구를 이용하기 어려운 날, 공원 중앙 홀에서 자주 하는 게임이다.
두 사람이 짝을 지어 하고, 승패는 전적으로 운으로 갈린다. 참가자가 결과에 영향을 줄 여지는 거의 없다.
벽에는 서로 다른 도시 N개가 표시된 큰 지도가 걸려 있다. 게임을 시작하기 전에 진행자는 똑같이 생긴 공 N개가 담긴 그릇을 참가자에게 하나씩 건넨다. 공 안에는 지도 위의 도시 하나가 적혀 있고, 그릇 하나에는 지도의 모든 도시가 정확히 한 번씩 들어 있다.
게임이 시작되면 한 참가자가 자기 그릇에서 공을 하나 무작위로 꺼내 열고 안에 적힌 도시를 공개한다. 이어서 다른 참가자도 자기 그릇에서 공을 하나 무작위로 꺼내 도시를 공개한다.
두 도시가 같으면 무승부다. 두 도시가 다르면 진행자가 지도에 두 도시를 표시한다. 한 도시가 다른 도시의 정북서쪽에 있으면 먼저 뽑은 참가자가 이기고, 정북동쪽에 있으면 나중에 뽑은 참가자가 이긴다. 나머지 경우는 모두 무승부다. 두 도시를 잇는 직선과 가로축이 이루는 각이 정확히 45도이면 두 도시는 서로 정북서쪽 또는 정북동쪽에 있다고 본다.
승자가 나올 확률은 지도 위 도시 배치에 따라 크게 달라진다. 모든 도시의 좌표가 미리 주어지므로, 승자가 나올 확률을 구하라.
입력은 여러 테스트 케이스로 이루어지며 파일의 끝에서 끝난다. 각 테스트 케이스의 첫 줄에는 지도에 있는 도시의 수 N (1≤N≤105)이 주어진다. 다음 N개의 줄에는 도시 하나의 좌표를 나타내는 정수 x와 y가 공백으로 구분되어 주어진다. 좌표는 평면의 표준 직교좌표이고, 각 좌표의 절댓값은 109 이하다. 한 테스트 케이스에 들어 있는 도시 N개는 모두 서로 다르다. 모든 테스트 케이스의 N을 더한 값은 5×105 이하다.
각 테스트 케이스마다 승자가 나올 확률을 소수점 아래 여섯 자리로 반올림해 한 줄에 출력한다. 끝자리가 0이어도 여섯 자리를 모두 채워 출력하고, 값이 정확히 중간이면 올림한다. 예를 들어 확률이 1/4이면 0.250000을 출력한다.