Biến số

Xem PDF

Nộp bài


Điểm: 20 (thành phần)
Thời gian: 0.4s
Bộ nhớ: 256M

Tác giả:
Dạng bài

Huy có hai mảng \(N\) phần tử, mỗi phần tử là một số nguyên dương hoặc một chuỗi ký tự thể hiện một biến số. Huy thắc mắc liệu cậu ấy có thể gán mỗi biến số với một giá trị nguyên nào đó để hai mảng trở nên bằng nhau hay không. Hai mảng được tính là bằng nhau nếu từng cặp phần tử ở hai vị trí giống đều bằng nhau. Bạn hãy lập trình giúp Huy giải đáp thắc mắc này nhé!

Input

  • Dòng đầu chứa số nguyên dương \(N\ (N\leq50000)\) là số lượng phần tử của mỗi mảng;
  • Dòng tiếp theo chứa \(N\) phần tử của mảng thứ nhất;
  • Dòng cuối cùng chứa \(N\) phần tử của mảng thứ hai.

Mỗi phần tử của hai mảng có thể là một số nguyên dương nhỏ hơn \(1000\) hoặc một chuỗi không quá \(10\) ký tự latin in thường thể hiện tên một biến số.

Output

  • In ra YES nếu tồn tại một cách gán các biến số để hai mảng bằng nhau, ngược lại in ra NO.

Ví dụ

Sample input 1
3
3 1 2
3 1 x
Sample output 1
YES

Sample input 2
4
4 5 uqt an
1 uqt 3 uqt
Sample output 2
NO

Sample input 3
5
dp 3 dp hp 3
dp hp 2 vlt 3
Sample output 3
YES
Note

Ở ví dụ thứ ba, ta có thể gán \(dp=2\), \(hp=3\), và \(vlt=3\), để cả hai mảng trở thành \([2,\ 3,\ 2,\ 3,\ 3]\).

Ràng buộc

  • Trong \(20\%\) test tương ứng với \(20\%\) số điểm, mỗi biến số chỉ xuất hiện đúng \(1\) lần trong cả hai mảng;
  • Trong \(20\%\) test khác tương ứng với \(20\%\) số điểm, chỉ xuất hiện đúng hai loại biến số: xy. Nhưng hai biến số này có thể lặp lại nhiều lần trong hai mảng;
  • \(60\%\) test còn lại không có ràng buộc gì thêm.