Swap by Sum

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho hai dãy số nguyên ~a~ và ~b~, mỗi dãy gồm ~n~ phần tử, và một số nguyên ~k~.

Bạn được phép biến đổi dãy ~a~ bằng thao tác sau với số lần không giới hạn:

  • Chọn một chỉ số ~i~ (~1 \le i < n~) sao cho ~a_i + a_{i + 1} = k~, và đổi chỗ hai phần tử ~a_i~ và ~a_{i+1}~.

Với hai dãy số ~a~ và ~b~ cho trước, hỏi có thể biến đổi dãy ~a~ thành dãy ~b~ hay không?

Input

Dòng đầu tiên chứa số nguyên ~t~ (~1 \le t \le 10^4~)  — số lượng test case. Mô tả mỗi test case như sau:

  • Dòng đầu tiên chứa hai số nguyên ~n~, ~k~ (~1 \le n \le 2 \cdot 10^5~; ~|k| \le 10^9~).

  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ (~|a_i| \le 10^9~).

  • Dòng thứ ba chứa ~n~ số nguyên ~b_1, b_2, \ldots, b_n~ (~|b_i| \le 10^9~).

Đảm bảo rằng tổng ~n~ qua tất cả các test không vượt quá ~2 \cdot 10^5~.

Output

Với mỗi test, in ra YES nếu có thể biến đổi dãy ~A~ thành dãy ~B~, hoặc NO nếu không.

Scoring

Tổng điểm cho bài này là ~1000~.

Sample Input 1

5
5 5
1 4 1 2 3
4 1 1 3 2
3 -5
-1 -2 -4
-4 -2 -1
1 1000000000
-1000000000
1000000000
4 0
-1 1 -1 1
1 -1 1 -1
6 7
1 6 6 1 2 5
6 1 1 6 5 2

Sample Output 1

YES
NO
NO
YES
YES

Notes

Ở test case thứ nhất, ta có ~k = 5~ và ~a = [1, 4, 1, 2, 3]~. Ta có thể thực hiện thao tác sau để biến đổi dãy ~a~ thành ~b = [4, 1, 1, 3, 2]~:

  • Đổi chỗ cặp phần tử đầu tiên: ~[\underline{1}, \underline{4}, 1, 2, 3] \Longrightarrow [4, 1, 1, 2, 3]~;

  • Đổi chỗ cặp phần tử cuối cùng: ~[4, 1, 1, \underline{2}, \underline{3}] \Longrightarrow [4, 1, 1, 3, 2]~.

Ở test case thứ hai, ta có ~k = 5~, ~a = [-1, -2, -4]~ và ~b = [-4, -2, -1]~. Do không tồn tại cặp phần tử kề nhau có tổng là ~5~, ta không thể thực hiện phép biến đổi nào cả. Như vậy, đáp án là NO.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.