만드는 중입니다

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

바냐와 재킷

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

요약
각 날의 기온을 포함하는 재킷을 하루에 하나씩 배정하되, 연속된 두 날에 같은 재킷을 입지 않는 배정 방법을 찾습니다.
난이도

보통10점 중 7점

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

문제

바냐는 삶을 다시 바꿔 보려고 앞으로 nn 일 동안 입을 재킷 일정을 세우려 한다. 그는 mm 개의 재킷을 가지고 있다. ii 번째 재킷은 기온이 lil_i 이상 rir_i 이하일 때 입을 수 있다. jj 일째 기온은 기상 예보에 따라 aja_j 이다. jj 일째에 그는 li≤aj≤ril_i \le a_j \le r_i 을 만족하는 재킷 ii 를 입어야 한다. 그는 같은 재킷을 연속된 이틀에 입지 않는다. 어머니는 재킷 없이 외출하는 것도, 여러 벌을 겹쳐 입는 것도 허락하지 않는다. 따라서 매일 정확히 한 벌을 입어야 한다. 이 조건을 모두 만족하는 일정을 만들어라.

입력

첫 줄에는 날짜 수와 재킷 수를 나타내는 두 정수 nn 과 mm (1≤n,m≤1000001 \le n, m \le 100000) 이 주어진다. 둘째 줄에는 각 날의 기온을 나타내는 nn 개의 정수 a1,a2,...,ana_1, a_2, ..., a_n (0≤ai≤1090 \le a_i \le 10^9) 이 주어진다. 이어서 mm 개의 줄이 주어진다. 그중 ii 번째 줄에는 ii 번째 재킷의 기온 범위를 나타내는 두 정수 lil_i 와 rir_i (0≤li≤ri≤1090 \le l_i \le r_i \le 10^9) 가 주어진다.

출력

조건을 만족하는 일정이 존재하면 첫 줄에 Yes 를 출력한다. 둘째 줄에는 nn 개의 정수 b1,b2,...,bnb_1, b_2, ..., b_n 을 출력한다. 여기서 bib_i 는 ii 일째에 입는 재킷의 번호이다. 재킷 번호는 입력 순서대로 1부터 매긴다. 일정이 없으면 No 를 출력한다. 조건을 만족하는 일정이 여러 개라면 그중 아무것이나 출력해도 된다.

힌트

첫 번째 입력 예시에서 2 1 2 4 가 유일한 정답은 아니다. 다른 정답으로 1 2 1 4 도 가능하다. 두 번째 입력 예시에서는 1일째와 2일째 모두 입을 수 있는 재킷이 첫 번째 재킷뿐이므로 조건을 만족하는 일정이 없다.

예제2

  1. 예제 1

    입력
    4 4
    25 25 30 50
    10 40
    20 30
    70 100
    50 50
    
    예상 출력
    Yes
    2 1 2 4
    
  2. 예제 2

    입력
    4 2
    30 40 50 60
    30 40
    50 60
    
    예상 출력
    No