만드는 중입니다

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

산타 클로스

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

요약
각 집 i마다 모든 요정의 선물을 아이들에게 전달할 수 있는 최소 이동 거리 2X_i - X_L을 구합니다.
난이도

어려움10점 중 9점

유형
그리디, 세그먼트 트리, 이분 탐색
정답자
아직 제출이 없습니다

문제

크리스마스 이브에 산타는 요정에게 선물을 받아 아이들에게 전합니다.

도시에는 길을 따라 NN개의 집이 있고, 1번부터 NN번까지 번호가 붙어 있습니다 (1≤N≤962261 ≤ N ≤ 96 226). 집 ii마다 다음 정보가 주어집니다.

  • XiX_i (0≤X1≤X2≤...≤XN≤10000000000 ≤ X_1 ≤ X_2 ≤ ... ≤ X_N ≤ 1 000 000 000): 도로에서 집 ii의 위치
  • HiH_i (0≤Hi≤10 ≤ H_i ≤ 1)
  • ViV_i (0≤Vi≤N0 ≤ V_i ≤ N)

Hi=0H_i = 0이면 집 ii에는 값이 ViV_i인 선물 하나를 가진 요정이 있습니다. Hi=1H_i = 1이면 집 ii에는 최소 값 ViV_i인 선물 하나를 기다리는 아이가 있습니다.

시나리오는 NN개입니다. 시나리오 ii에서 산타는 좌표 0에서 빈 선물 가방을 들고 도시에 들어섭니다. 먼저 오른쪽으로 이동해 좌표 XiX_i의 집 ii에 도착한 뒤, 왼쪽으로 이동해 XLi≤XiX_{L_i} ≤ X_i인 위치까지 갑니다. 아직 방문하지 않은 요정의 집을 지날 때마다 그 선물을 가방에 넣습니다. 아직 선물을 받지 못한 아이의 집을 지날 때는 가방에 있는 선물 중 하나를 골라 아이에게 줄 수 있습니다 (반드시 줄 필요는 없습니다). 고른 선물의 값은 아이가 요구한 최소 값 VV 이상이어야 하며, 준 선물은 가방에서 빠집니다.

시나리오 ii에서 산타가 이동하는 거리는 Di=2Xi−XLiD_i = 2X_i - X_{L_i}입니다. 각 시나리오마다 모든 요정의 선물을 나눠 줄 수 있는 최소 이동 거리 DiD_i를 구하세요. 선물을 받지 못하는 아이가 있어도 되지만, 모든 선물을 나눠 주어야 하며 한 아이가 두 개 이상 받아서는 안 됩니다. 그런 DiD_i가 없으면 Di=−1D_i = -1로 둡니다. 특히 산타가 모든 요정의 집에 갈 수 없는 시나리오의 답은 항상 −1-1입니다.

입력

첫 줄에 테스트 개수 TT (1≤T≤101 ≤ T ≤ 10)가 주어집니다. 각 테스트는 다음 네 줄로 이루어집니다.

  • 1번째 줄: 집의 수 NN
  • 2번째 줄: X1,X2,...,XNX_1, X_2, ..., X_N
  • 3번째 줄: H1,H2,...,HNH_1, H_2, ..., H_N
  • 4번째 줄: V1,V2,...,VNV_1, V_2, ..., V_N

모든 테스트의 NN을 더한 값은 500 000을 넘지 않습니다.

출력

각 테스트마다 NN개의 정수 D1,D2,...,DND_1, D_2, ..., D_N을 공백으로 구분해 한 줄에 출력합니다.

힌트

첫 번째 입력의 첫 번째 테스트에는 집이 8개 있습니다. 집 2, 3, 4에는 각각 값이 2, 3, 3인 선물을 가진 요정이 있습니다. 집 5에는 값이 5인 선물을 원하는 아이가 있습니다. 그만큼 큰 선물을 가진 요정이 없으므로 이 아이는 선물을 받지 못합니다.

시나리오 1, 2, 3에서 산타는 모든 요정을 방문하지 않으므로 D1=D2=D3=−1D_1 = D_2 = D_3 = -1입니다.

시나리오 4, 5, 6에서 산타는 3개의 선물을 받을 수 있는 아이들을 충분히 방문하지 못하므로 D4=D5=D6=−1D_4 = D_5 = D_6 = -1입니다.

시나리오 7에서 산타는 3개의 선물을 모두 나눠 주려면 첫 번째 집(XL7=10X_{L_7} = 10)까지 되돌아가야 하므로 D7=40D_7 = 40입니다.

시나리오 8에서는 되돌아갈 필요가 없어(XL8=X8=40X_{L_8} = X_8 = 40) 3개의 선물을 모두 나눠 줄 수 있으므로 D8=35D_8 = 35입니다.

예제2

  1. 예제 1

    입력
    2
    8
    10 11 12 13 14 16 25 35
    1 0 0 0 1 1 1 1
    2 2 3 3 5 1 1 1
    16
    10 11 12 13 14 15 16 17 18 19 20 23 24 31 33 37
    1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1
    2 1 7 3 1 10 10 6 5 5 1 6 1 10 8 2
    
    예상 출력
    -1 -1 -1 -1 -1 -1 40 35
    -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 36 24 31 33 37
    
  2. 예제 2

    입력
    2
    9
    1 2 3 4 15 16 17 18 19
    0 0 1 1 1 0 0 1 1
    5 7 4 1 2 3 1 6 2
    9
    1 2 3 4 15 16 17 18 19
    0 0 1 1 1 0 0 1 1
    5 7 4 1 2 3 1 6 1
    
    예상 출력
    -1 -1 -1 -1 -1 -1 -1 32 34
    -1 -1 -1 -1 -1 -1 -1 32 23