{"code":"cses2107","name":"CSES - String Functions | Các hàm của xâu","description":"Xét một xâu có độ dài $n$, bắt đầu đếm từ 1. Nhiệm vụ của bạn là tính tất cả giá trị của hai hàm sau:\r\n- $z(i)$ là độ dài lớn nhất của xâu con bắt đầu tại vị trí $i$, và đồng thời xâu con này cũng là tiền tố của xâu ban đầu. Ta định nghĩa $z(1)=0$.\r\n- $\\pi(i)$ là độ dài lớn nhất của xâu con kết thúc ở vị trí $i$, đồng thời cũng là tiền tố của xâu ban đầu, và có độ dài không vượt quá $i-1$. \r\n\r\nHàm $z$ được dùng trong thuật toán Z-algorithm, còn hàm $\\pi$ được dùng trong thuật toán KMP.\r\n\r\n<h4>Input</h4>\r\n- Dòng đầu tiên và duy nhất của input gồm 1 xâu có độ dài $n$, gồm các kí tự in thường `a` - `z`.\r\n\r\n<h4>Output</h4>\r\nIn ra hai dòng, mỗi dòng gồm $n$ giá trị:\r\n- Dòng thứ nhất chứa $n$ số nguyên ứng với các giá trị của hàm $z$.\r\n- Dòng thứ hai chứa $n$ số nguyên ứng với các giá trị của hàm $\\pi$.\r\n\r\n<h4>Constraints</h4>\r\n- $1 \\leq n \\leq 10^6$\r\n\r\n<h4>Example</h4>\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        abaabca\r\n\r\n    ??? success \"Output\"\r\n        0 0 1 2 0 0 1\r\n        0 0 1 1 2 0 1","points":1600.0,"partial":true,"time_limit":1.0,"memory_limit":524288,"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}}