#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+10;
string t;
char s[10],a[200000+10];
int p[N];
int main()
{
while(~scanf("%s%s",s,a))
{
int k=s[0]-'a';
int len=strlen(a);
for(int i=0;i<len;i++)
{
a[i]=(a[i]-'a'-k+26)%26+'a';
}
t="$#";
for(int i=0;i<len;i++)
{
t+=a[i];
t+='#';
}
memset(p,0,sizeof(p));
int id=0;
int mx=0;
int ans=1;
int up=t.length();
int l=0;
for(int i=1;i<up;i++)
{
if(i>mx)
p[i]=1;
else
p[i]=min(p[2*id-i],mx-i);
while(t[i-p[i]]==t[i+p[i]]) p[i]++;
if(p[i]+i>mx)
{
id=i;
mx=p[i]+i;
}
if(p[i]-1>ans)
{
ans=p[i]-1;
l=i-p[i]+1;
}
}
if(ans==1) printf("No solution!\n");
else
{
string o="";
int st=0;
for(int i=0;i<l;i++)
{
if(t[i]!='#'&&t[i]!='$') st++;
}
for(int i=l;i<=l+2*ans;i++)
{
if(t[i]=='#'||t[i]=='$') continue;
o+=t[i];
}
printf("%d %d\n",st,st+ans-1);
cout<<o<<endl;
}
}
return 0;
}
hdu3294 Girls' research 【manacher算法】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.