아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

터널을 지나는 기차

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

요약
차량 길이와 전등 상태가 주어질 때, 터널을 지나는 모든 순간에 켜진 차량이 겹치도록 추가로 켜야 하는 전등의 최소 개수를 구한다.
난이도

보통10점 중 7점

유형
배열, 투 포인터, 그리디, 슬라이딩 윈도우
정답자
아직 제출이 없습니다

문제

피터는 기차를 타고 여행하는 중이다. 기차는 차량 nn개로 이루어져 있고, ii번째 차량의 길이는 aia_i미터다. 차량 사이의 간격은 없다고 생각한다.

차량 가운데 일부는 불이 켜져 있고 나머지는 꺼져 있다. 기차는 길이가 hh미터인 터널로 들어가려고 한다. 터널 안에 길이가 00보다 큰 부분을 두고 있는 차량이 모두 불이 꺼져 있는 순간을 어두운 순간이라고 한다. 차량이 터널의 입구나 출구와 한 점에서만 닿는 순간에는 그 차량이 터널 안에 있다고 보지 않는다.

피터는 기차의 맨 앞이 터널에 들어가는 순간부터 맨 뒤가 터널을 빠져나오는 순간까지 어두운 순간이 한 번도 생기지 않기를 바란다. 이미 켜져 있는 불은 그대로 두고, 피터가 새로 불을 켜야 하는 차량 수의 최솟값을 구하라.

입력

첫째 줄에 테스트 케이스의 개수 tt가 주어진다 (1≤t≤1001 \le t \le 100).

각 테스트 케이스의 첫째 줄에는 차량 수 nn과 터널의 길이 hh가 주어진다 (1≤n≤1051 \le n \le 10^5, 1≤h≤1091 \le h \le 10^9). 둘째 줄에는 차량의 길이 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다 (1≤ai≤1091 \le a_i \le 10^9). 셋째 줄에는 정수 nn개가 주어지는데, ii번째 값은 ii번째 차량의 불이 켜져 있으면 11, 꺼져 있으면 00이다. 차량은 터널에 들어가는 순서대로 주어진다.

모든 테스트 케이스의 nn을 더한 값은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 어두운 순간이 생기지 않도록 새로 불을 켜야 하는 차량 수의 최솟값을 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    2
    7 10
    5 3 4 5 9 9 9
    1 0 0 0 1 0 0
    5 2
    1 2 3 1 1
    1 1 0 1 1
    
    예상 출력
    2
    1
    
  2. 예제 2

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