记录编号 572633 评测结果 AAAAAAA
题目名称 字符串周期(Period) 最终得分 100
用户昵称 Gravataryrtiop 是否通过 通过
代码语言 C++ 运行时间 0.021 s
提交时间 2022-07-04 00:16:32 内存使用 1.50 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
int n,Next[maxn];
char s[maxn];
int main() {
	freopen("strperiod.in","r",stdin);
	freopen("strperiod.out","w",stdout);
	scanf("%d %s",&n,s + 1);
	Next[1] = 0;
	for(int i = 2,j = 0;i <= n;++ i) {
		for(;j&&s[i] != s[j + 1];j = Next[j]);
		if(s[i] == s[j + 1])++ j;
		Next[i] = j;
	}
	for(int i = 2;i <= n;++ i) {
		if(i % (i - Next[i]) == 0&&Next[i]) {
			printf("%d %d\n",i,i / (i - Next[i]));
		}
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}