import sys
input = sys.stdin.readline
N = int(input())
data = [*map(int,input().split())]
make = [*map(int,input().split())]
for i in range(N):
data[i] -= make[i]
cnt = 0
for i in range(N):
if data[i] == 0:
continue
if data[i] > 0:
x = 1
else:
x = -1
while data[i] != 0:
cnt += 1
for j in range(i,N):
if data[j]*x <= 0:
break
data[j] -= x
print(cnt)
처음에는 해결법이 한번에 안떠올랐는데, 조금만 고민해보니까 쉽게 해답이 나왔다.
가장 중요한건 한번에 다 처리하든 나눠서 처리하든 횟수가 똑같다는 것이다.
설명을 보태면 만약 11011을 00000으로 만들어주어야 한다고 할 때, 11011 >> 00-100 >> 00000 으로 처리하는 방법과, 11011 >> 00011 >> 00000 으로 처리하는 방법이 필요한 명령횟수가 똑같다는 것이다.
따라서 그냥 맨 앞에서부터 + 끼리 묶어서 처리, -끼리 묶어서 처리하면 쉽게 정답을 구할 수 있다.
오늘의 교훈) 의외로 해결법이 간단할 수 있다.