만드는 중입니다

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

작전

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

요약
시작 칸에서 인접한 칸을 에너지가 충분할 때마다 차례로 점령하고, 점령할 때마다 에너지가 k만큼 늘어날 때 점령할 수 있는 최대 칸 수를 구합니다.
난이도

어려움10점 중 8점

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

문제

전쟁이 일어났다. 전쟁터는 1차원 배열로 표현된다. ii번째 칸을 점령하려면 ii와 인접한 칸 중 하나를 먼저 점령해야 한다. 또한 현재 가지고 있는 에너지가 eie_i 이상일 때에만 점령할 수 있으며, 점령하면 에너지가 kik_i만큼 증가한다. ii번째 칸을 점령했다고 해서 에너지가 eie_i만큼 줄지는 않는다. 시작할 때 가진 에너지는 PP이므로, 처음에는 ei≤Pe_i \le P인 칸 중 아무 칸이나 골라 점령할 수 있다. 처음에 고르는 칸에 따라 점령할 수 있는 칸의 개수가 달라진다. 최대한 많은 칸을 점령했을 때 점령한 칸의 개수를 구하라.

입력

첫 번째 줄에 배열의 크기 nn과 처음 가진 에너지양 PP가 공백으로 구분되어 주어진다. (1≤n≤5000001 \le n \le 500000; 0≤P≤1090 \le P \le 10^9)

두 번째 줄에 배열의 각 칸을 점령하는 데 필요한 에너지 e1,e2,…,ene_1, e_2, \dots, e_n이 공백을 사이에 두고 주어진다. (0≤ei≤1090 \le e_i \le 10^9)

세 번째 줄에 배열의 각 칸을 점령했을 때 얻는 에너지 k1,k2,…,knk_1, k_2, \dots, k_n이 공백을 사이에 두고 주어진다. (0≤ki≤1090 \le k_i \le 10^9)

출력

최대한 많은 칸을 점령했을 때 점령한 칸의 개수를 출력한다.

예제2

  1. 예제 1

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

    입력
    11 3
    3 1 4 2 5 2 8 9 3 0 2
    1 0 1 1 1 0 0 0 1 2 1
    
    예상 출력
    6