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

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

보디빌딩

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

요약
매일 B_i kg이 늘고 루틴 한 번마다 X kg이 빠질 때, 매일 최종 몸무게가 A_i 이상이 되도록 루틴을 최대로 몇 번 할 수 있는지 구한다.
난이도

보통10점 중 6점

유형
그리디, 수학
정답자
아직 제출이 없습니다

문제

건표는 헬스를 좋아하는 사람이다. 건표는 자신만의 운동 루틴이 있다. 건표는 이 루틴을 진행할 때마다 몸무게가 XX kg만큼 빠졌다. 건표는 하루에 몇 번이고 이 루틴을 진행할 수 있었다.

건표는 장차 있을 보디빌딩 대회를 위해 NN일에 걸쳐 식단을 짜놓았다. 이 계획에 의하면 ii번째 날에는 건표의 몸무게가 B_iB\_i kg만큼 찐다. 다만, 건표가 운동을 하다가 쓰러지면 안 되기 때문에 ii번째 날에 최종 몸무게가 최소 A_iA\_i kg 이상이 되길 원했다. 만약 건표가 너무 많이 운동을 하거나 너무 적게 음식을 먹어서 그날에 최종적으로 A_iA\_i kg보다 적은 몸무게를 가진다면, 건표는 그 자리에서 쓰러진다. 건표는 보디빌딩 대회에서 우승하기 위해 루틴을 최대한 많이 진행하여 최대한 건강한 몸을 만들고 싶었다. 건표가 쓰러지지 않는 선에서 이 루틴을 최대 몇 번까지 진행할 수 있는지 구하여라.

입력

첫째 줄에는 두 정수 NN과 XX가 주어진다. NN은 보디빌딩 대회까지 남은 일수. XX는 루틴을 진행할 때마다 빠지는 몸무게(kg)이다.

둘째 줄에는 NN개의 정수 A_iA\_i가 주어진다. ii번째 정수 A_iA\_i는 ii번째 날 최종 몸무게의 하한을 의미한다.

셋째 줄에는 NN개의 정수 B_iB\_i가 주어진다. ii번째 정수 B_iB\_i는 ii번째 날에 늘어나는 몸무게를 나타낸다.

출력

첫째 줄에 건표가 쓰러지지 않고 진행할 수 있는 최대 루틴 수를 출력한다.

만약 어떻게 하더라도 NN일 이내에 건표가 쓰러진다면 -1을 출력하라.

제한

  • 1≤N≤500,0001\leq N\leq 500,000
  • 1≤A_i,B_i,X≤1,000,000,0001\leq A\_i,B\_i,X\leq 1,000,000,000 (1≤i≤N)(1\leq i\leq N)

예제2

  1. 예제 1

    입력
    10 5
    1 3 2 2 5 7 1 3 1 5
    3 5 6 5 3 1 3 5 1 3
    
    예상 출력
    6
    
  2. 예제 2

    입력
    1 10
    2
    1
    
    예상 출력
    -1