만드는 중입니다

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

회전초밥

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

요약
N명의 손님이 가진 초밥 수와 회전하는 N+1명의 요리사가 주어집니다. 모든 손님이 남은 초밥을 K개씩 다 먹는 데 걸리는 시간을 구하고, 끝나지 않으면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
시뮬레이션, 수학, 구현
정답자
아직 제출이 없습니다

문제

UCPC시에는 세계에서 가장 유명한 회전초밥집이 있다. 가게 이름은 "뭐든지 회전하는 회전초밥집"이다! 이 회전초밥집은 요리사도 손님도 모두 회전하는 독특한 컨셉으로 SNS에서 큰 인기를 끌었다. UCPC 출제진은 몇 달 전에 이 가게를 예약했고, 오늘 드디어 방문했다.

총 NN명의 출제진이 회전초밥집을 방문했고, 주방에서는 이에 맞춰 N+1N+1명의 요리사를 대기시켰다. ii번째 요리사는 1분마다 bib_i개의 초밥을 만들 수 있다. 처음에 웨이터가 출제자들을 일렬로 앉힌 뒤, ii번째 자리의 출제자에게 aia_i개의 초밥을 나누어주었다. 그리고 1분마다 다음 행동이 순서대로 반복되었다.

  1. 1≤i≤N1\leq i\leq N을 만족하는 모든 ii에 대하여, ii번째 자리의 요리사가 ii번째 자리의 출제자에게 초밥을 만들어준다. 이때 만들어주는 초밥의 양은 그 요리사가 1분마다 만들 수 있는 양과 같다. N+1N+1번째 자리의 요리사는 초밥을 만들지 않고 쉰다.
  2. 요리사들이 한 번 회전한다. 즉, 원래 1번째 자리의 요리사는 2번째로, 원래 2번째 자리의 요리사는 3번째로, ..., 원래 N+1N+1번째 자리의 요리사는 1번째로 이동한다.
  3. 출제진이 한 번 회전한다. 즉, 원래 1번째 자리의 출제자는 2번째로, 원래 2번째 자리의 출제자는 3번째로, ..., 원래 NN번째 자리의 출제자는 1번째로 이동한다.

각 출제자는 언제든 자신에게 초밥 한 세트가 모이면 바로 그 세트를 먹는다. 여기서 초밥 한 세트는 종류와 상관없이 초밥 KK개의 묶음을 뜻한다. 초밥을 먹는 데 걸리는 시간은 무시한다.

출제자들은 음식을 남기는 것을 아주 싫어하기 때문에, 모두가 가진 초밥의 양이 0이 될 때까지 식사를 계속하려고 한다. 식사를 시작한 지 몇 분 후에 식사가 끝나게 될까?

입력

첫 번째 줄에 정수 NN, KK가 공백으로 구분되어 주어진다. (1≤N≤2 0001\leq N\leq 2\,000, 2≤K≤1 000 0002\leq K\leq 1\,000\,000)

두 번째 줄에 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N이 공백으로 구분되어 주어진다. (0≤ai≤K−10\leq a_i\leq K-1)

세 번째 줄에 b1,b2,⋯ ,bN+1b_1, b_2, \cdots, b_{N+1}이 공백으로 구분되어 주어진다. (1≤bi≤K−11\leq b_i\leq K-1)

출력

출제진이 식사를 끝마칠 때까지 걸린 시간을 분 단위로 출력한다. 무한한 시간이 지나도 출제진이 식사를 끝마치지 못한다면 대신 -1을 출력한다.

예제2

  1. 예제 1

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

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