{"code":"dplis3","name":"LIS thứ tự từ điển (Phiên bản 1)","description":"Cho dãy $A$ gồm $N$ phần tử là các số nguyên dương $A_1, A_2, ..., A_N$. Dãy $C$ được gọi là dãy con tăng độ dài $K$ của $A$ nếu thoả mãn các điều kiện sau:\r\n+ $K \\geq 1$.\r\n+ $1 \\leq i_1 < i_2 < i_3 < ... < i_K \\leq N$.\r\n+ $C_1 = A_{i_1}, C_2 = A_{i_2}, ..., C_K = A_{i_K}$.\r\n+ $C_1 < C_2 < ... < C_K$ nếu $K \\geq 2$\r\n\r\n**Yêu cầu**: Tìm dãy $C$ sao cho độ dài $K$ lớn nhất có thể. Nếu có nhiều dãy $C$ thoả mãn, in ra dãy có thứ tự từ điển nhỏ nhất. Dãy $C$ được gọi là dãy có thứ tự từ điển nhỏ hơn dãy $C'$ nếu tồn tại chỉ số $p$ $(p \\geq 1)$ thoả mãn các điều kiện sau:\r\n+ $C_1 = C'_1$, $C_2 = C'_2$, $...$, $C_{p-1} = C'_{p-1}$ nếu $p > 1$.\r\n+ $C_p < C'_p$.\r\n\r\n####Input\r\n- Dòng thứ nhất gồm số nguyên dương $N$.\r\n- Dòng thứ hai gồm $N$ số nguyên dương $A_1, A_2, ..., A_N$.\r\n\r\n####Output\r\n- Dòng thứ nhất in ra số $K$ là độ dài dãy con tăng $C$ dài nhất.\r\n- Dòng thứ hai in ra $K$ số nguyên dương $C_1, C_2, ..., C_N$ là dãy có thứ tự từ điển nhỏ nhất độ dài $K$.\r\n\r\n####Constraints\r\n- $N \\leq 10^5$\r\n- $|A_i| \\leq 10^9$\r\n\r\n####Scoring\r\n- Subtask $1$ ($50\\%$ số điểm): $N\\leq 10^3$.\r\n- Subtask $2$ ($50\\%$ số điểm): Không có ràng buộc gì thêm.\r\n\r\n####Example\r\n\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n        5\r\n        1 3 5 4 6 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        4\r\n        1 3 4 6\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}}