수열 다듬기

View as PDF

Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type

문제

길이가 \(N\)인 수열 \(a_1, a_2, \cdots, a_N\)이 주어질 때, 이 수열을 잘 다듬어서 길이가 \(N\)인 수열 \(b_1, b_2, \cdots, b_N\)으로 만들어 보자. 여러분이 수열을 다듬을 때 사용할 수 있는 도구는 수열의 인접한 두 원소를 둘 다 \(1\)만큼 증가시키거나 감소시키는 도구이다. 즉, \(i(1 \le i \le N - 1)\)번째 위치에 도구를 사용하면 \(a_i + 1, a_{i + 1} + 1\)로 만들거나 \(a_i - 1, a_{i + 1} - 1\)로 만들 수 있는 도구이다. 당연히 도구를 사용해서 수열의 원소를 음수가 되게 만들 수도 있다.

이 도구는 얼마든지 사용할 수 있지만, 아무리 도구를 많이 사용하더라도 \(a_1, a_2, \cdots, a_N\)을 \(b_1, b_2, \cdots, b_N\)으로 다듬을 수 없는 경우도 존재한다. 어떻게 다듬어야 하는지가 아니라 다듬는 것이 가능한지만 구해보자.

입력

첫째 줄에 정수 \(N(2 \le N \le 100\,000)\)이 주어진다. \(N\)은 짝수이다.

둘째 줄에 정수 \(a_1, a_2, \cdots, a_N(-1\,000 \le a_i \le 1\,000)\)이 주어진다.

셋째 줄에 정수 \(b_1, b_2, \cdots, b_N(-1\,000 \le b_i \le 1\,000)\)이 주어진다.

출력

도구를 적절히 사용해서 \(a_1, a_2, \cdots, a_N\)을 \(b_1, b_2, \cdots, b_N\)으로 다듬을 수 있다면 YES를, 그렇지 않다면 NO를 출력한다. 모두 대문자로 출력해야하는 것에 유의한다.

예제 입력 1

8
1 0 0 0 1 0 0 0
1 1 1 1 1 1 0 0

예제 출력 1

NO

예제 입력 2

6
3 -1 4 1 2 3
1 0 2 -2 1 0

예제 출력 2

YES

Comments

There are no comments at the moment.