시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB31817315658.209%

문제

아스키 코드가 97이상 126이하인 N개의 문자로 이루어진 문자열 S가 주어진다. 문자열 S의 모든 접두사에 대해, 각각의 접두사가 주기적인 문자열인지 아닌지 알고 싶다. 다시 말해 2 ≤ i ≤ N을 만족하는 각각의 i에 대해, 길이가 i인 문자열 S의 접두사가 어떤 문자열 A에 대해 AK 형태로 표현할 수 있는 가장 큰 K > 1을 알아내려 한다.

AK란 문자열 A가 K번 연속되어있는 문자열을 의미한다. A = "abad"이고, K = 3인 경우 AK = "abadabadabad"이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄로 이루어진다. 테스트 케이스의 첫 번째 줄에는 문자열 S의 길이인 정수 N이 주어진다 (2 ≤ N ≤ 1 000 000). 테스트 케이스의 두 번째 줄에는 문자열 S가 주어진다. 입력의 끝은 0으로 주어진다.

출력

각 테스트 케이스에 대해, "Test case #"과 테스트 케이스의 번호를 한 줄에 출력한다. 그 후, 길이가 i인 접두사의 주기가 K > 1인 경우, 접두사의 길이 i와 주기 K를 공백으로 분리하여 한 줄에 출력한다. 이때, 접두사의 길이가 오름차순이 되도록 출력하여야 한다. 각 테스트 케이스에 대한 답을 출력한 후, 빈 줄을 한 줄 출력하여야 한다.

예제 입력 1

3
aaa
12
aabaabaabaab
0

예제 출력 1

Test case #1
2 2
3 3

Test case #2
2 2
6 2
9 3
12 4
W3sicHJvYmxlbV9pZCI6IjM3NzkiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM4ZmNcdWFlMzAiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzU0NFx1YzJhNFx1ZDBhNCBcdWNmNTRcdWI0ZGNcdWFjMDAgOTdcdWM3NzRcdWMwYzEgMTI2XHVjNzc0XHVkNTU4XHVjNzc4IE5cdWFjMWNcdWM3NTggXHViYjM4XHVjNzkwXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWJiMzhcdWM3OTBcdWM1ZjQgU1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YmIzOFx1Yzc5MFx1YzVmNCBTXHVjNzU4IFx1YmFhOFx1YjRlMCBcdWM4MTFcdWI0NTBcdWMwYWNcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWFjMDFcdWFjMDFcdWM3NTggXHVjODExXHViNDUwXHVjMGFjXHVhYzAwIFx1YzhmY1x1YWUzMFx1YzgwMVx1Yzc3OCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzhcdWM5YzAgXHVjNTQ0XHViMmNjXHVjOWMwIFx1YzU0Y1x1YWNlMCBcdWMyZjZcdWIyZTQuIFx1YjJlNFx1YzJkYyBcdWI5ZDBcdWQ1NzQgMiAmbGU7IGkgJmxlOyBOXHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCBcdWFjMDFcdWFjMDFcdWM3NTggaVx1YzVkMCBcdWIzMDBcdWQ1NzQsIFx1YWUzOFx1Yzc3NFx1YWMwMCBpXHVjNzc4IFx1YmIzOFx1Yzc5MFx1YzVmNCBTXHVjNzU4IFx1YzgxMVx1YjQ1MFx1YzBhY1x1YWMwMCBcdWM1YjRcdWI1YTQgXHViYjM4XHVjNzkwXHVjNWY0IEFcdWM1ZDAgXHViMzAwXHVkNTc0IEE8c3VwPksgPFwvc3VwPlx1ZDYxNVx1ZDBkY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWFjMDBcdWM3YTUgXHVkMDcwIEsgJmd0OyAxXHVjNzQ0IFx1YzU0Y1x1YzU0NFx1YjBiNFx1YjgyNCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPkE8c3VwPks8XC9zdXA+XHViNzgwIFx1YmIzOFx1Yzc5MFx1YzVmNCBBXHVhYzAwIEtcdWJjODggXHVjNWYwXHVjMThkXHViNDE4XHVjNWI0XHVjNzg4XHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuIEEgPSAmcXVvdDs8Y29kZT5hYmFkPFwvY29kZT4mcXVvdDtcdWM3NzRcdWFjZTAsIEsgPSAzXHVjNzc4IFx1YWNiZFx1YzZiMCBBPHN1cD5LPFwvc3VwPiA9ICZxdW90Ozxjb2RlPmFiYWRhYmFkYWJhZDxcL2NvZGU+JnF1b3Q7XHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzQwIFx1YzVlY1x1YjdlYyBcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1YjQ1MCBcdWM5MDRcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0XHViMmU0LiBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YmIzOFx1Yzc5MFx1YzVmNCBTXHVjNzU4IFx1YWUzOFx1Yzc3NFx1Yzc3OCBcdWM4MTVcdWMyMTggTlx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQgKDIgJmxlOyBOICZsZTsgMSAwMDAgMDAwKS4gXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWI0NTAgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWJiMzhcdWM3OTBcdWM1ZjQgU1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWIwNWRcdWM3NDAgMFx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0LCAmcXVvdDtUZXN0IGNhc2UgIyZxdW90O1x1YWNmYyBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWQ1NWMgXHVjOTA0XHVjNWQwIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVhZGY4IFx1ZDZjNCwgXHVhZTM4XHVjNzc0XHVhYzAwIGlcdWM3NzggXHVjODExXHViNDUwXHVjMGFjXHVjNzU4IFx1YzhmY1x1YWUzMFx1YWMwMCBLICZndDsgMVx1Yzc3OCBcdWFjYmRcdWM2YjAsIFx1YzgxMVx1YjQ1MFx1YzBhY1x1Yzc1OCBcdWFlMzhcdWM3NzQgaVx1YzY0MCBcdWM4ZmNcdWFlMzAgS1x1Yjk3YyBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHViZDg0XHViOWFjXHVkNTU4XHVjNWVjIFx1ZDU1YyBcdWM5MDRcdWM1ZDAgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWM3NzRcdWI1NGMsIFx1YzgxMVx1YjQ1MFx1YzBhY1x1Yzc1OCBcdWFlMzhcdWM3NzRcdWFjMDAgXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjXHVjNzc0IFx1YjQxOFx1YjNjNFx1Yjg1ZCBcdWNkOWNcdWI4MjVcdWQ1NThcdWM1ZWNcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1YyBcdWQ2YzQsIFx1YmU0OCBcdWM5MDRcdWM3NDQgXHVkNTVjIFx1YzkwNCBcdWNkOWNcdWI4MjVcdWQ1NThcdWM1ZWNcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjM3NzkiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJQZXJpb2QiLCJkZXNjcmlwdGlvbiI6IjxwPkZvciBlYWNoIHByZWZpeCBvZiBhIGdpdmVuIHN0cmluZyBTIHdpdGggTiBjaGFyYWN0ZXJzIChlYWNoIGNoYXJhY3RlciBoYXMgYW4gQVNDSUkgY29kZSBiZXR3ZWVuIDk3IGFuZCAxMjYsIGluY2x1c2l2ZSksIHdlIHdhbnQgdG8ga25vdyB3aGV0aGVyIHRoZSBwcmVmaXggaXMgYSBwZXJpb2RpYyBzdHJpbmcuIFRoYXQgaXMsIGZvciBlYWNoIGkgKDIgJmxlOyBpICZsZTsgTikgd2Ugd2FudCB0byBrbm93IHRoZSBsYXJnZXN0IEsgJmd0OyAxIChpZiB0aGVyZSBpcyBvbmUpIHN1Y2ggdGhhdCB0aGUgcHJlZml4IG9mIFMgd2l0aCBsZW5ndGggaSBjYW4gYmUgd3JpdHRlbiBhcyBBPHN1cD5LPFwvc3VwPiwgdGhhdCBpcyBBIGNvbmNhdGVuYXRlZCBLIHRpbWVzLCBmb3Igc29tZSBzdHJpbmcgQS4gT2YgY291cnNlLCB3ZSBhbHNvIHdhbnQgdG8ga25vdyB0aGUgcGVyaW9kIEsuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgZmlsZSBjb25zaXN0cyBvZiBzZXZlcmFsIHRlc3QgY2FzZXMuIEVhY2ggdGVzdCBjYXNlIGNvbnNpc3RzIG9mIHR3byBsaW5lcy4gVGhlIGZpcnN0IG9uZSBjb250YWlucyBOICgyICZsdDs9IE4gJmx0Oz0gMSAwMDAgMDAwKSAmbmRhc2g7IHRoZSBzaXplIG9mIHRoZSBzdHJpbmcgUy4gVGhlIHNlY29uZCBsaW5lIGNvbnRhaW5zIHRoZSBzdHJpbmcgUy4gVGhlIGlucHV0IGZpbGUgZW5kcyB3aXRoIGEgbGluZSwgaGF2aW5nIHRoZSBudW1iZXIgemVybyBvbiBpdC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCB0ZXN0IGNhc2UsIG91dHB1dCAmbGRxdW87VGVzdCBjYXNlICMmcmRxdW87IGFuZCB0aGUgY29uc2VjdXRpdmUgdGVzdCBjYXNlIG51bWJlciBvbiBhIHNpbmdsZSBsaW5lOyB0aGVuLCBmb3IgZWFjaCBwcmVmaXggd2l0aCBsZW5ndGggaSB0aGF0IGhhcyBhIHBlcmlvZCBLICZndDsgMSwgb3V0cHV0IHRoZSBwcmVmaXggc2l6ZSBpIGFuZCB0aGUgcGVyaW9kIEsgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlOyB0aGUgcHJlZml4IHNpemVzIG11c3QgYmUgaW4gaW5jcmVhc2luZyBvcmRlci4gUHJpbnQgYSBibGFuayBsaW5lIGFmdGVyIGVhY2ggdGVzdCBjYXNlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=

출처

ICPC > Regionals > Europe > Southeastern European Regional Contest > SEERC 2004 A번

  • 문제를 번역한 사람: corea
  • 빠진 조건을 찾은 사람: daan