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

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

돌 옮기기

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

요약
원 위 N개 위치의 돌 개수 a를 b로 바꾸는 최소 이동 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

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

문제

N개의 돌더미가 원형으로 놓여 있다. 자리 번호는 0번부터 N-1번까지이고, i번 자리와 i+1번 자리는 이웃이다. 0번 자리와 N-1번 자리도 이웃이다.

길이가 N인 수열 a와 b가 주어진다. a(i)는 i번 자리에 지금 쌓여 있는 돌 개수이고, b(i)는 그 자리에 놓이기를 바라는 돌 개수이다. 한 번의 이동으로 어느 자리의 돌 하나를 이웃한 자리로 옮길 수 있다.

지금 상태에서 돌을 옮겨 바라는 상태를 만들 때 필요한 최소 이동 횟수를 구하라. 바라는 상태를 만들 수 없으면 -1을 출력한다.

입력

첫째 줄에 N이 주어진다. N은 1000 이하의 자연수이다.

둘째 줄에 수열 a의 원소를 나타내는 N개의 정수가 주어진다.

셋째 줄에 수열 b의 원소를 나타내는 N개의 정수가 주어진다.

두 수열의 각 원소는 0 이상 10억 이하이다.

출력

최소 이동 횟수를 정수 하나로 출력한다. 바라는 상태를 만들 수 없으면 -1을 출력한다.

예제4

  1. 예제 1

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

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

    입력
    1
    7
    4
    
    예상 출력
    -1
    
  4. 예제 4

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