{"code":"zalgorithm","name":"Thuật toán Z","description":"Cho một xâu $S$. Với mỗi vị trí $1 \\leq i \\leq S.length$, hãy in ra độ dài tiền tố dài nhất của $S$ khớp với hậu tố xuất phát tại $i$ của nó. Nói cách khác, hãy in ra số $j$ lớn nhất có thể mà $S[1..j] = S[i..i + j - 1]$ hoặc in ra $0$ nếu không tồn tại số $j$ nào như vậy.\r\n\r\n<h4>Input</h4>\r\n\r\n- Gồm một dòng chứa một xâu $S$ độ dài không quá $300,000$.\r\n\r\n<h4>Output</h4>\r\n\r\n- In ra $S.length$ số nguyên trên một dòng. Số thứ $i$ là độ dài tiền tố tương ứng với hậu tố tại $i$.\r\n\r\n<h4>Example</h4>\r\n\r\n!!! question \"Test 1\"\r\n\r\n    ???+ \"Input\"\r\n\r\n        ```sample\r\n        aabaacd\r\n        ```\r\n\r\n    ???+ success \"Output\"\r\n\r\n        ```sample\r\n        7 1 0 2 1 0 0\r\n        ```","points":200.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}}