0pts 求调,感觉和题解没任何区别啊()
查看原帖
0pts 求调,感觉和题解没任何区别啊()
741244
Eason_cyx楼主2025/2/6 18:31
#include <bits/stdc++.h>
using namespace std;
int p[22000005];
int main() {
	string s = "-*"; char c; while(cin >> c) s = s + c + '*';
	int n = s.size() - 1; int r = 0, mid = -1; for(int i = 1;i <= n;i++) {
		p[i] = (i > r ? 1 : min(mid*2-i, r-i+1));
		while(s[i+p[i]] == s[i-p[i]]) p[i]++;
		if((i + p[i]) > r) { r = i + p[i]; mid = i; }
	} cout << *max_element(p+1, p+n+1) - 1 << endl;
	return 0;
}
2025/2/6 18:31
加载中...