Masala #0553
Z - massivni hosil qilish #1
Sizga \(s\) satr berilgan bo’lib bu satr orqali \(Z\) massivni hosil qilish so’raladi.
\(Z\) massivni hosil qilish quyidagicha amalga oshiriladi.
- \(Z\) massiv elementlari soni satr elementlari soniga teng bo'ladi va \(Z\) massivning dastlabki qiymati uchun \(0\) olinadi ya'ni \(Z[0] = 0\).
- \(Z[i] (i=1,2,...,len(s)-1)\) ni hosil qilish uchun \(s\) satirning \(i-index\)dan \(s[i...j] (i\leq j)\) boshlanuvchi eng uzun quyi satr topiladi, \(s\) satrning prefiks ga teng bo'lsin.
- Topilgan bu quyi satr uzunligi \(Z[i]\) ga yoziladi (bunday satr mavjud bo'lmasa \(0\) qiymati olinadi).
Prefiks bu satrning \(0-index\)dan \(s[0...j] (0\leq j)\) boshlanuvchi quyi satrga aytiladi. Misol: \(s = "abac"\) satrning prefikslari \(a\), \(ab\), \(aba\) va \(abac\)
Kirish faylida lotin alfbosining kichik harflaridan tashkil topgan \(s(1\leq |s|\leq 10^3)\) satr beriladi.
Chiqish faylida \(Z\) massiv elementlarini probel bilan ajratilgan holda bitta satrda chop eting.
# | input.txt | output.txt |
---|---|---|
1 |
aabcaabc |
0 1 0 0 4 1 0 0 |
2 |
aaaaaaa |
0 6 5 4 3 2 1 |