{"code":"dplcs7","name":"Dãy con chung dài nhất (Phiên bản 2)","description":"Cho dãy $A$ gồm $N$ phần tử gồm các số nguyên dương $A_1,A_2,\\cdots,A_N$ và dãy $B$ gồm $M$ phần tử gồm các số nguyên dương $B_1,B_2,\\cdots,B_M$. Dãy $C$ được gọi là dãy con chung độ dài $K$ của $A,B$ nếu tồn tại hai dãy chỉ số như sau:\r\n\r\n- $1 \\leq i_1 < i_2 < \\cdots < i_K \\leq N$.\r\n- $1 \\leq j_1 < j_2 < \\cdots < j_K \\leq M$.\r\nSao cho $C_p = A_{i_p} = B_{j_p}$.\r\n\r\n**Yêu cầu:** Tìm dãy $C$ là dãy con chung của $A,B$ sao cho độ dài $K$ lớn nhất có thể.\r\n\r\n#### Input\r\n\r\n- Dòng thứ nhất chứa hai số nguyên dương $N,M$.\r\n- Dòng thứ hai gồm $N$ số nguyên dương $A_1,A_2,\\cdots,A_N (A_i \\leq 10^6)$.\r\n- Dòng thứ ba gồm $M$ số nguyên dương $B_1,B_2,\\cdots,B_M (B_i \\leq 10^6)$.\r\n\r\n#### Output\r\n\r\n- Dòng thứ nhất in ra số $K$ là độ dài dãy con chung $C$ dài nhất tìm được.\r\n- Dòng thứ hai in ra $K$ số nguyên dương $C_1,C_2,\\cdots,C_K$. Nếu có nhiều dãy $C$ thoả mãn, in ra một dãy bất kì.\r\n#### Scoring\r\n\r\n- Subtask $1$ ($50\\%$ số điểm): $N \\leq 10^3,M \\leq 10^3$.\r\n- Subtask $2$ ($50\\%$ số điểm): $N \\leq 10^3,M \\leq 10^6$.\r\n\r\nNếu in ra đúng số $K$ thì sẽ được 50% số điểm của test. Nếu in ra thêm được dãy $C_1,C_2,\\cdots,C_K$ mà đúng sẽ được thêm 50% số điểm của test\r\n####Example\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n        9 9 \r\n        1 2 7 3 4 8 5 6 9 \r\n        1 2 3 4 5 6 7 8 9 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        7 \r\n        1 2 3 4 5 6 9\r\n        ```","points":400.0,"partial":true,"time_limit":1.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}