#include<stdio.h>
#include<string.h>
#define MAX 200020
char s[MAX],ss[MAX*2],str[2];
int p[MAX*2];
int chance(char s)
{
return (s- str[0] + 26) % 26 + 'a';
}
int min(int a,int b){return a>b? b:a;}
int main()
{
int i,id,mx,max,n,j,ans,m; while(scanf("%s%s",str,s)!=EOF)
{
ss[0]='$';
n=strlen(s);
for(i=0;i<n;i++)
{
ss[2*i+1]='#';
ss[2*(i+1)]=s[i];
}
ss[2*i+1]='#';
ss[2*(i+1)]='\0';
id=1;
max=0;
mx=0;
for(i=1;i<2*n+2;i++)
{
if(mx>i)
p[i]=min(p[2*id-i],mx-i);
else
p[i]=1;
while(ss[i+p[i]]==ss[i-p[i]])
{
p[i]++;
}
if(i+p[i]>mx)
{
mx=i+p[i];
id=i;
}
if(p[i]>max) {j=i; max=p[i];} }
if(max-1<2)
printf("No solution!");
else
{
if(j%2)
ans=(j/2-(max-1)/2)+1;
else
ans=j/2-(max-1)/2;
m=j/2+(max-1)/2;
printf("%d %d\n",ans-1,m-1);
for(i=ans-1;i<m;i++)
printf("%c",chance(s[i]));
printf("\n");
}
}
return 0;
}

最新文章

  1. JTextField 限制指定字符不能输入
  2. Three.js的光源投影
  3. hibernate的like用法(用占位符解决)
  4. java GUI之事件处理
  5. Linux shell 脚本攻略之根据扩展名切分文件名
  6. 编译安装 php 5.4.11
  7. 怎么加sudo权限
  8. 前端框架Bootstrap - 快速搭建网站
  9. 高端内存映射之vmalloc分配内存中不连续的页--Linux内存管理(十九)
  10. [转帖]SUSE Linux
  11. fcitx4.2.0自定义中文标点符号
  12. Android自动化测试之Monkeyrunner使用方法及实例
  13. v-show v-if 的使用
  14. jenkins使用jacoco插件检测代码覆盖率(八)
  15. Oracle12c中性能优化&amp;amp;功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护
  16. 定期删除Azure存储账号下N天之前的数据文件-ARM
  17. 一致性hash理解
  18. NSUserDefaults保存对象数组报错
  19. 【FZU 2277】Change
  20. Java多线程-一个简单的线程,实现挂起和恢复的功能

热门文章

  1. Android组件Activity初探
  2. HDU 3001 三进制状压DP
  3. UML之序列图
  4. Programming Languages - Coursera 整理
  5. 初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
  6. AIX 压缩与归档
  7. MyEclipse的代码自动提示功能
  8. 简单学习Python之路1
  9. 使用acme.sh快速生成SSL证书
  10. hdoj-1593-find a way to escape【数学题】