You have a string s = s 1 s 2...s s , where s is the length of string s , and s i its i -th character. Let's introduce several definitions: A substring s[i..j] (1 ≤ i ≤ j ≤ s) of string s is string s i s i + 1...s j . The prefix of string s of length l (1 ≤ l ≤ s) is string s[1..l]. The suffix of string s of length l (1 ≤ l ≤ s) is string s[s - l + 1..s]. Your task is, for any prefix of string s which matches a suffix of string s , print the number of times it occurs in string s as a substring.
输入描述:
The single line contains a sequence of characters s1s2...ss(1 ≤ s ≤ 105) — string s. The string only consists of uppercase English letters.
输出描述:
In the first line, print integer k(0 ≤ k ≤ s) — the number of prefixes that match a suffix of string s. Next print k lines, in each line print two integers lici. Numbers lici mean that the prefix of the length li matches the suffix of length li and occurs in string s as a substring ci times. Print pairs liciin the order of increasingli.
示例1
输出
3<br />1 4<br />3 2<br />7 1<br />3<br />1 3<br />2 2<br />3 1<br />
加载中...