#CCBCHBAHAI0000121. Mảng không thể gán toàn bộ bằng dấu = (Whole-Array Assignment Is Not Allowed)

Mảng không thể gán toàn bộ bằng dấu = (Whole-Array Assignment Is Not Allowed)

Mảng không thể gán toàn bộ bằng dấu = (Whole-Array Assignment Is Not Allowed)

Nguồn: C Primer Plus

Phiên bản: Phước Hưng OJ Extended

Đề bài

Trong C, một mảng thực sự (array object) không phải là một giá trị có thể được gán toàn bộ bằng toán tử = sau khi đã khai báo. Nếu a và b là hai mảng có cùng kích thước thì câu lệnh dạng a = b; là không hợp lệ. Ngược lại, một phần tử riêng lẻ như aia_i là một đối tượng số nguyên bình thường và có thể được gán giá trị. Nếu cần sao chép toàn bộ nội dung của b sang a, ta phải sao chép từng phần tử hoặc dùng một thao tác thư viện phù hợp.

Bài toán mô phỏng ba loại thao tác trên hai mảng số nguyên AA và BB, mỗi mảng có nn phần tử, đánh số từ 00 đến n−1n-1:

  • Loại 1 i x: phép gán phần tử Ai=xA_i=x. Phép gán này hợp lệ và làm thay đổi AiA_i.
  • Loại 2: biểu diễn ý định dùng phép gán toàn mảng A = B. Phép gán này không hợp lệ trong C và không làm thay đổi dữ liệu mô phỏng.
  • Loại 3: sao chép từng phần tử của BB sang AA, tức là sau thao tác ta có Ai=BiA_i=B_i với mọi 0≤i<n0\le i<n. Thao tác này hợp lệ.

Với mỗi thao tác, hãy in kết luận về tính hợp lệ. Sau khi xử lý hết các thao tác, in trạng thái cuối cùng của mảng AA.

Input

  • Dòng đầu chứa số nguyên nn.
  • Dòng thứ hai chứa nn số nguyên A0,A1,…,An−1A_0,A_1,\ldots,A_{n-1}.
  • Dòng thứ ba chứa nn số nguyên B0,B1,…,Bn−1B_0,B_1,\ldots,B_{n-1}.
  • Dòng thứ tư chứa số nguyên qq.
  • Mỗi trong qq dòng tiếp theo mô tả một thao tác theo một trong ba dạng 1 i x, 2 hoặc 3. Với thao tác loại 1, chỉ số ii luôn thỏa 0≤i<n0\le i<n.

Output

Với mỗi thao tác, in một dòng:

  • VALID nếu thao tác là phép gán phần tử hoặc sao chép từng phần tử;
  • INVALID_ARRAY_ASSIGNMENT nếu thao tác biểu diễn A = B.

Sau qq dòng kết luận, in một dòng A = a0 a1 ... a(n-1) chứa trạng thái cuối cùng của AA.

Subtask

Subtask 1 (100 điểm): 1≤n≤10001\le n\le1000, 1≤q≤10001\le q\le1000, −109≤Ai,Bi,x≤109-10^9\le A_i,B_i,x\le10^9.

Ví dụ

Input

4
1 2 3 4
10 20 30 40
4
1 2 99
2
3
1 0 -5

Output

VALID
INVALID_ARRAY_ASSIGNMENT
VALID
VALID
A = -5 20 30 40

Giải thích

Ban đầu A=(1,2,3,4)A=(1,2,3,4) và B=(10,20,30,40)B=(10,20,30,40).

Thao tác 1 2 99 gán riêng phần tử chỉ số 22, nên hợp lệ và AA trở thành (1,2,99,4)(1,2,99,4).

Thao tác 2 biểu diễn A = B. Đây là phép gán toàn mảng, không hợp lệ trong C, nên mảng mô phỏng không đổi.

Thao tác 3 sao chép từng phần tử của BB sang AA, vì vậy hợp lệ và A=(10,20,30,40)A=(10,20,30,40).

Cuối cùng 1 0 -5 gán A0=−5A_0=-5. Do đó trạng thái cuối là (−5,20,30,40)(-5,20,30,40).