hdu1867 A + B for you again

来源:互联网 发布:怎么设置域名跳转 编辑:程序博客网 时间:2024/06/08 10:11
#include <stdio.h>#include <string.h>#define MAXN 100005int next[MAXN];char str1[MAXN],str2[MAXN];void getNext(char *str){int len=strlen(str);int i=0,j=-1;next[0]=-1;while(i<len){if (j==-1||str[i]==str[j]){i++;j++;next[i]=j;}elsej=next[j];}}int KMP(char *s,char *t){int len1,len2,i,j;i=j=0;len1=strlen(s);len2=strlen(t);getNext(t);while(i<len1&&j<len2){if(j==-1||s[i]==t[j]){i++;j++;}elsej=next[j];}if(i==len1)return j;return 0;}int main(){int x,y;while(scanf("%s%s",str1,str2)!=EOF){x=KMP(str1,str2);y=KMP(str2,str1);if(x==y){if(strcmp(str1,str2)<0)printf("%s%s\n",str1,str2+x);elseprintf("%s%s\n",str2,str1+x);}else if(x>y)printf("%s%s\n",str1,str2+x);elseprintf("%s%s\n",str2,str1+y);}return 0;}

原创粉丝点击