Masala #0553

Xotira 16 MB Vaqt 1000 ms
14

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\)


Kiruvchi ma'lumotlar:

Kirish faylida lotin alfbosining kichik harflaridan tashkil topgan \(s(1\leq |s|\leq 10^3)\) satr beriladi.


Chiquvchi ma'lumotlar:

Chiqish faylida \(Z\) massiv elementlarini probel bilan ajratilgan holda bitta satrda chop eting.


Misollar
# input.txt output.txt
1
aabcaabc
0 1 0 0 4 1 0 0
2
aaaaaaa
0 6 5 4 3 2 1