페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5124
스페셜 저지
서브태스크

보급 5초 1024MB

문제

2차원 평면에 N개의 군사 기지가 있는 구역이 있다.  각 i번째 부대의 위치는 좌표 (X_i, Y_i)로 알려져 있다.

이 구역을 담당한 보급 부대는 모든 기지에 보급을 수행하려고 한다.

i번째 기지가 보급을 받을 수 있는 날짜는 A_i번째부터 B_i번째 날짜까지다.

전쟁 중이라, 보급 부대는 병력이 전체적으로 왼쪽 위에서 오른쪽 아래로 내려가는 모양의 대열을 유지하면서 오른쪽 위 방향으로 전진해야 한다.

따라서, 아래 조건들이 모두 만족되도록 각 i번째 기지가 보급을 받을 날짜 V_i를 하루씩 지정해야 한다.

• 모든 i에 대해 A_i ≤ V_i ≤ B_i이다.

• 모든 i, j에 대해 X_i < X_j , Y_i < Y_j 인 경우 V_i < V_j라야 한다.

• 모든 i, j에 대해 i ≠ j 이면 V_i ≠ V_j라야 한다.

각 기지의 위치와 보급 받을 수 있는 날짜들의 범위를 입력으로 받아 조건을 만족하면서 모든 기지에 보급을 할 수 있는지 확인하는 프로그램을 작성하라.

 

아래 예는 6개의 기지가 있는 상황을 보여 준다.

각 점이 기지에 해당하며 점 오른쪽 위에 보급을 받을 수 있는 날짜 범위가 주어져 있다.

아래 그림은 위의 예에서 조건을 만족하도록 보급 날짜를 정한 예를 보여준다. 

각 점 오른쪽 아래에 배정된 날짜가 표기되어 있다. 

아래 그림의 곡선은 보급 부대의 대형이 2일째와 3일째 사이에 있을 수 있는 가능한 위치를 보여 준다.


입력

첫 번째 줄에 기지의 개수 N이 주어진다.

다음 N개의 줄 중 i번째 줄에 기지의 정보 X_i, Y_i, A_i, B_i가 공백을 사이에 두고 주어진다.​ 

제약 조건

• 주어지는 모든 수는 정수이다.

1 ≤ N ≤ 250,000

1 ≤ A_i ≤ B_i ≤ N

1 ≤ X_i ≤ N

1 ≤ Y_i ≤ N

• 모든 X_i는 서로 다르다. 즉 i ≠ j 이면 X_i ≠ X_j이다.

• 모든 Y_i는 서로 다르다. 즉 i ≠ j 이면 Y_i ≠ Y_j이다.


출력

보급 날짜 배정이 가능한 경우 첫 번째 줄에 "YES"를 출력한다. 

다음 줄에 기지 번호 순서대로 배정된 날짜들을 공백을 사이에 두고 출력한다.

보급 날짜 배정이 불가능한 경우 첫 번째 줄에 "NO"를 출력한다.​ 


부분문제

번호 점수 조건
#113점

N ≤ 10.

#218점

N ≤ 2,500.

#322점

모든 i에 대해 B_i = N이다.

#447점

추가 제약 조건 없음.​ 


예제1

입력
6

2613
4146
6546
1325
3213
5416
출력
YES

346215

예제2

입력
2

1122
2211
출력
NO

출처

KOI 1차 2022 고3

역링크