인라인 공극 빌드 ( INT & k, INT의 L, INT의 R) { K = node_cnt ++ ; 경우 (L == R) 창 ; int로 중간 = (L + R) / 2 ; LC ([K], L, 미드)를 작성; RC ([K], 중간 구축 + 1 , r)을; } 인라인 INT는 (수정 INT의 K, INT의 L, INT의 r)을 { INT 각종 = ++ node_cnt; 액정 [oo의] RC [각종 = RC에 [K]; LC [K]를 합계 = [OO] = 합계 + [K] 1 ; 경우 (L의 == 연구)반환 OO를; int로 중간 = (L + R) / 2 ; 경우 (p <= MID)의 LC [의 각종 = 수정 (액정 [oo의, L, MID); 다른 RC [각종 = 수정 (RC의 [oo의, 중간 + 1 , R); 반환 OO를; } 인라인 INT의 쿼리 ( int로 U, INT의 V, INT의 L, INT의 R, INT의 K) { INT 중간 = (L + R) / 2 ; INT CNT = 합 [LC [V] - 합 [액정 [U], ANS; 경우 (L == R) 복귀 L; 경우 (CNT> = K) = ANS쿼리 (LC [U] LC [V], L, 중, K); 다른 세 = 쿼리 (RC [U], RC [V], 중간 + 1 , R, K의 CNT); 반환 년; }