Lại là đổi chỗ
Đề bài
Mô tả
Cho hai mảng số nguyên và , cùng có phần tử.
Với mảng , bạn được thực hiện thao tác sau bao nhiêu lần tuỳ ý (có thể không lần nào):
- Chọn một số nguyên thoả .
- Đổi chỗ tiền tố độ dài của với hậu tố độ dài của .
Nói cách khác, sau thao tác với tham số , mảng trở thành
Ví dụ, nếu thì sau thao tác với mảng trở thành .
Vì nên tiền tố và hậu tố không bao giờ chồng lên nhau. Riêng với không có giá trị nào hợp lệ, tức là mảng không thể thay đổi.
Hãy xác định xem có thể biến mảng thành đúng mảng hay không.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số lượng bộ dữ liệu.
- Mỗi bộ dữ liệu gồm ba dòng:
- Dòng thứ nhất chứa số nguyên : độ dài của hai mảng.
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa số nguyên .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng riêng chữ Yes nếu có thể biến thành , ngược lại in ra chữ No. Phải in đúng dạng viết hoa chữ cái đầu như trên.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 1 2 2 1 3 1 2 3 1 2 3 3 1 2 4 1 3 4 4 1 2 3 2 3 1 2 2 3 1 2 3 1 3 2 |
Yes Yes No Yes No |
Bộ 1: thao tác đổi chỗ hai phần tử, được . Bộ 2: hai mảng đã bằng nhau, không cần thao tác. Bộ 3: mảng không chứa giá trị . Bộ 4: thao tác cho , rồi thao tác cho . Bộ 5: với chỉ có , phần tử giữa luôn đứng yên nên không thể đổi thành ở vị trí giữa. |
| 2 6 1 2 3 4 6 5 1 2 3 5 4 6 6 1 2 3 4 5 6 5 6 3 4 1 2 |
No Yes |
Bộ 1 cho thấy việc hai mảng là hoán vị của nhau và các tổng trùng nhau vẫn chưa đủ: mảng ghép các vị trí đối xứng thành , còn mảng ghép thành , hai cách ghép này khác nhau. Bộ 2: đúng một thao tác . |
Bình luận