만드는 중입니다

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

Two Kilers

시간 제한10초메모리 제한512 MB

요약
배열의 값을 바꾸는 질의가 주어질 때, 매 질의 후 가장 긴 증가하는 부분 수열의 길이를 k로 잘라 출력합니다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 동적 계획법, 이분 탐색
정답자
아직 제출이 없습니다

문제

폴란드 영화 Two Kilers의 주인공 Jurek Kiler는 금 상자 배송을 정기적으로 받는다. ii번째 배송의 값은 그 안에 든 금 상자 가치의 합인 cic_i이다.

최근 Jurek은 배송 값이 떨어지고 있다는 점이 걱정되었다. 이를 확인하려고 그는 배송 수열에 대한 척도를 정의했고, 이를 수열의 disorder라고 부른다. 정수열 c1,c2,…,cnc_1, c_2, \ldots, c_n의 disorder는 가장 긴 狭義 증가 부분 수열의 길이이다. 형식적으로는 ci1<ci2<…<cisc_{i_1} < c_{i_2} < \ldots < c_{i_s}이고 i1<i2<…<isi_1 < i_2 < \ldots < i_s를 만족하는 수열이 존재하는 가장 큰 정수 ss이다.

Disorder가 kk 이상이면 Jurek의 걱정은 근거가 없다고 보고, 정확한 값에는 관심이 없다. 금 상자 일부는 도난당하고, 일부는 큰 묶음으로 늦게 도착하므로 배송 값은 바뀔 수 있다. 값이 바뀔 때마다 disorder를 계산하되, disorder가 kk 이상이면 kk를 출력한다.

입력

첫 줄에 테스트 케이스의 수 Z≤10Z \le 10이 주어진다.

각 테스트 케이스의 첫 줄에는 배송 수 nn과 파라미터 kk가 주어진다. 다음 줄에는 초기 배송 값 c1,c2,…,cnc_1, c_2, \ldots, c_n이 주어진다. 그다음 줄에는 값이 바뀌는 횟수 qq가 주어진다. 이어지는 qq개의 줄에는 pjp_j와 vjv_j가 주어지며, 이는 cpj=vjc_{p_j} = v_j로 바꾼다는 뜻이다.

출력

각 테스트 케이스마다 qq줄을 출력한다. 각 줄에는 자연수 하나를 적는다. jj번째 변경 후 disorder가 ss이면, jj번째 줄에 min⁡(s,k)\min(s, k)를 출력한다.

제한

n,q∈[1,105]n, q \in [1, 10^5]

ci,vj∈[1,109]c_i, v_j \in [1, 10^9]

pj∈[1,n]p_j \in [1, n]

k∈[1,20]k \in [1, 20]

예제1

  1. 예제 1

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