만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

홀수 찾아 삼만리

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

요약
N개의 목적지가 주어졌을 때, 모든 목적지를 한 번씩 방문하는 경로 중 맨해튼 거리의 합이 홀수인 경로가 있는지 판단하고 하나를 출력합니다.
난이도

보통10점 중 4점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

홀수를 좋아하는 홀스는 홀수를 찾아 여행을 떠나고 싶다. 22차원 좌표평면 위에 11번부터 NN번까지 번호가 부여된 여행지 NN개가 있고, ii번 여행지는 (xi,yi)(x_{i}, y_{i})에 위치한다.

홀스는 원하는 여행지에서 출발해 NN개의 여행지를 모두 한 번씩 방문하고 끝나는 여행 계획을 세우려고 한다. 이때 여행 계획에 따라 이동해야 할 거리의 합이 홀수가 되도록 계획을 세울 수 있는지 찾아보고, 가능하다면 여행 계획을 출력해 보자.

임의의 두 여행지 AA, BB 사이의 거리는 ∣xA−xB∣+∣yA−yB∣|x_{A}-x_{B}|+|y_{A}-y_{B}|로 정의된다.

입력

첫째 줄에 여행지의 개수 NN이 주어진다. (2≤N≤300 000)(2 \leq N \leq 300\ 000)

다음 NN개의 줄에 ii번 여행지의 좌표 xix_{i}, yiy_{i}가 공백으로 구분되어 주어진다. (1≤xi,yi≤106)(1 \leq x_{i}, y_{i} \leq 10^6)

같은 좌표에 둘 이상의 여행지가 존재하지 않으며, 모든 입력은 정수이다.

출력

첫째 줄에 홀스가 여행 계획을 세울 수 있으면 YES, 없으면 NO를 출력한다.

계획을 세울 수 있다면 다음 줄에 방문한 여행지의 순서를 의미하는 NN개의 여행지 번호를 공백으로 구분하여 순서대로 출력한다.

정답이 여러 가지인 경우 그중 아무거나 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 2
    2 4
    3 1
    
    예상 출력
    YES
    1 3 2
    
  2. 예제 2

    입력
    2
    4 4
    1 1
    
    예상 출력
    NO