아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

농장

시간 제한1초메모리 제한1024 MB

요약
Mr. P가 왼쪽, 오른쪽, 위, 대각선 위로 직진해 가장 많은 나무를 방문하는 경로와, 수평이 아닌 바퀴 자국을 덮는 최소 롤러 수를 구합니다.
난이도

어려움10점 중 9점

유형
그래프, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

농장은 2차원 유클리드 평면으로 볼 수 있다. 나무는 nn그루이며 1,2,…,n1, 2, \dots, n번으로 번호가 매겨져 있다. 각 나무는 평면 위의 한 점이고, ii번 나무의 좌표는 (xi,yi)(x_i, y_i)이다. 나무들의 좌표는 모두 서로 다르다.

P 씨는 원점 (0,0)(0,0)에서 차를 몰기 시작한다. 한 라운드마다 왼쪽, 오른쪽, 위, 왼쪽 위 45도, 오른쪽 위 45도 중 한 방향을 고른다. 그 방향으로 가면 아직 방문하지 않은 나무에 도달할 수 있어야 고를 수 있다. 선택한 방향으로 곧장 달려 그 방향에서 가장 가까운 미방문 나무에 도착한다. 고를 수 있는 방향이 없으면 멈춘다. P 씨는 가장 많은 나무를 방문하는 최적 경로를 따른다. 최적 경로가 여러 개라면 그중 아무거나 골라도 된다.

S 씨는 P 씨의 차가 농장에 바퀴 자국(rut)을 남긴다는 것을 알아챘다. 바퀴 자국은 두 나무 사이, 또는 원점과 나무 사이의 선분이다. S 씨는 왼쪽과 오른쪽이 아닌 방향(위, 왼쪽 위 45도, 오른쪽 위 45도)의 바퀴 자국이 보기 좋지 않다고 본다. 그래서 그런 자국이 생길 수 있는 구간을 다지려고 롤러를 빌리기로 했다. 정확히는, 최적 경로 중 하나에 포함되는 선분들이 그 구간이다.

롤러는 다음 규칙으로 움직인다.

  • 원점 또는 임의의 나무에서 출발한다.
  • 위, 왼쪽 위 45도, 오른쪽 위 45도 방향으로 움직일 수 있다. 멈추거나 방향을 바꾸는 것은 나무 위에서만 가능하다.
  • 왼쪽이나 오른쪽이 아닌 바퀴 자국이 생길 수 있는 구간만 지날 수 있다. 한 구간을 여러 롤러가 지나도 된다.

P 씨와 S 씨는 두 가지를 묻는다. (1) P 씨의 최적 경로를 구하라. (2) 필요한 롤러의 최소 개수를 구하라.

입력

첫 줄에 나무의 개수 nn이 주어진다. 다음 nn개의 줄에는 ii번째 나무의 좌표 xix_i와 yiy_i가 공백 한 칸으로 구분되어 주어진다.

출력

출력은 세 줄이다. 첫째 줄에는 P 씨가 방문할 수 있는 나무의 최대 개수 mm을 출력한다. 둘째 줄에는 P 씨가 방문하는 나무 번호 mm개를 공백으로 구분해 출력한다. 셋째 줄에는 필요한 롤러의 최소 개수를 출력한다.

제한

테스트 케이스nn좌표 범위추가 제약
1n=5n=5∥xi∥≤100\|x_i\| \le 100, 0<yi≤1000 < y_i \le 100
2n=10n=10
3n=100n=100∥xi∥≤10 000\|x_i\| \le 10\,000, 0<yi≤10 0000 < y_i \le 10\,000
4n=1000n=1000
5n=5000n=5000∥xi∥≤1 000 000\|x_i\| \le 1\,000\,000, 0<yi≤1 000 0000 < y_i \le 1\,000\,000최적 경로는 유일하다.
6
7n=50 000n=50\,000
8n=5000n=5000∥xi∥≤1 000 000\|x_i\| \le 1\,000\,000, 0<yi≤1 000 0000 < y_i \le 1\,000\,000모든 yiy_i는 서로 다르다.
9n=50 000n=50\,000
10
11n=5000n=5000∥xi∥≤1 000 000\|x_i\| \le 1\,000\,000, 0<yi≤1 000 0000 < y_i \le 1\,000\,000임의의 정수 YY에 대해 yi=Yy_i = Y를 만족하는 나무는 최대 10001000그루이다. 또한 롤러가 같은 곳을 두 번 지나지 않는 최적 해가 존재한다.
12
13n=50 000n=50\,000
14
15n=10 000n=10\,000∥xi∥≤1 000 000 000\|x_i\| \le 1\,000\,000\,000, 0<yi≤1 000 000 0000 < y_i \le 1\,000\,000\,000임의의 정수 YY에 대해 yi=Yy_i = Y를 만족하는 나무는 최대 10001000그루이다.
16
17n=30 000n=30\,000
18
19n=50 000n=50\,000
20

예제2

  1. 예제 1

    입력
    6
    -1 1
    1 1
    -2 2
    0 8
    0 9
    0 10
    
    예상 출력
    3
    2 1 3
    3
    
  2. 예제 2

    입력
    4
    0 1
    -2 1
    2 1
    3 2
    
    예상 출력
    4
    1 2 3 4
    2