만드는 중입니다

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

지퍼라인

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

요약
나무 한 그루의 높이가 새 값으로 바뀐다고 가정할 때, 높이가 엄격히 증가하는 부분 수열의 최대 길이를 각 질문마다 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 이분 탐색, 정렬
정답자
아직 제출이 없습니다

문제

바샤는 근처 숲의 나무에 지퍼라인을 설치하려고 한다. 그는 라인을 가능한 한 길게 만들고 싶지만, 숲에 있는 모든 나무의 높이를 정확히 기억하지는 못한다. 나무 한 그루를 제외하고는 높이를 올바로 기억한다고 확신한다.

숲에는 왼쪽에서 오른쪽으로 1부터 n까지 번호가 붙은 나무 n그루가 한 줄로 서 있다. 바샤에 따르면 i번째 나무의 높이는 hih_i이다. 길이가 kk(1≤k≤n1 \le k \le n)인 지퍼라인은 나무 kk그루 i1,i2,…,iki_1, i_2, \ldots, i_k(i1<i2<…<iki_1 < i_2 < \ldots < i_k)에 걸쳐 있으며, 이 나무들의 높이는 증가하는 수열, 즉 hi1<hi2<…<hikh_{i_1} < h_{i_2} < \ldots < h_{i_k}를 이룬다. 지퍼라인의 길이는 이를 이루는 나무의 개수이다.

페챠도 바샤와 함께 이 숲에 있었고, 바샤의 기록에 실수가 있을지도 모른다는 qq개의 가정을 가지고 있다. 그의 ii번째 가정은 두 정수 aia_i, bib_i로 주어지며, 페챠의 생각에는 aia_i번 나무의 실제 높이가 bib_i이다. 페챠의 가정들은 서로 독립적이다.

각 가정에 대해, 그 가정 아래에서 만들 수 있는 지퍼라인의 최대 길이를 구하라.

입력

첫 줄에 나무의 개수 nn과 페챠의 가정 개수 mm(1≤n,m≤400 0001 \le n, m \le 400\,000)이 주어진다. 다음 줄에는 바샤가 기억하는 나무의 높이 hih_i(1≤hi≤1091 \le h_i \le 10^9) nn개가 주어진다. 이어지는 mm개의 줄에는 각각 두 정수 aia_i, bib_i(1≤ai≤n1 \le a_i \le n, 1≤bi≤1091 \le b_i \le 10^9)가 주어진다.

출력

페챠의 각 가정에 대해, 그 가정 아래에서 만들 수 있는 지퍼라인의 최대 길이를 한 줄에 하나씩 출력한다.

힌트

첫 번째 예제를 보자. 첫 번째 가정은 바샤가 기억하는 높이와 실제로 일치한다. 두 번째 가정에서 나무의 높이는 (4,2,3,4)(4, 2, 3, 4)이고, 세 번째 가정에서는 (1,2,3,3)(1, 2, 3, 3), 네 번째 가정에서는 (1,2,3,5)(1, 2, 3, 5)이다.

예제2

  1. 예제 1

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

    입력
    4 2
    1 3 2 6
    3 5
    2 4
    
    예상 출력
    4
    3