Submit | All submissions | Best solutions | Back to list |
REPEATS - Repeats |
A string s is called an (k,l)-repeat if s is obtained by concatenating k>=1 times some seed string t with length l>=1. For example, the string
s = abaabaabaaba
is a (4,3)-repeat with t = aba as its seed string. That is, the seed string t is 3 characters long, and the whole string s is obtained by repeating t 4 times.
Write a program for the following task: Your program is given a long string u consisting of characters ‘a’ and/or ‘b’ as input. Your program must find some (k,l)-repeat that occurs as substring within u with k as large as possible. For example, the input string
u = babbabaabaabaabab
contains the underlined (4,3)-repeat s starting at position 5. Since u contains no other contiguous substring with more than 4 repeats, your program must output the maximum k.
Input
In the first line of the input contains H- the number of test cases (H <= 20). H test cases follow. First line of each test cases is n - length of the input string (n <= 50000), The next n lines contain the input string, one character (either ‘a’ or ‘b’) per line, in order.
Output
For each test cases, you should write exactly one interger k in a line - the repeat count that is maximized.
Example
Input: 1 17 b a b b a b a a b a a b a a b a b Output: 4since a (4, 3)-repeat is found starting at the 5th character of the input string.
Added by: | Hoang Hong Quan |
Date: | 2006-01-05 |
Time limit: | 1.985s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: NODEJS PERL6 VB.NET |
Resource: | BOI 2004 |
hide comments
2022-03-24 14:51:35
Why RE??????!!!!!! |
|
2022-03-02 08:18:34
Why RE?? |
|
2020-07-24 14:13:53
RE怎么救 |
|
2016-01-03 02:03:39 lu
I got a WA,but it seems that my code is correct upd:fixed,use scanf("%c\n",&ch) not scanf("%c",&ch) Last edit: 2016-01-03 03:05:29 |
|
2012-04-13 15:37:33 Tommy
Why RE? |