poj 2541 Binary Witch

来源:互联网 发布:杭州美工兼职 编辑:程序博客网 时间:2024/06/08 04:31
#include<stdio.h>#include<string.h>char str[1001000];int next[1001000];int n,m;int main(){    while(scanf("%d%d%s",&n,&m,str)!=EOF)    {        int end=n+m;        while(n<end)        {           int i=n-1,len=-2,j=n,x=n-1,y;           next[n-1]=n;           while(i>=0)           {              if(j==n||str[j]==str[i])              {                i--;                j--;                next[i]=j;                if(n-1-j>13)  break;                if(len<n-1-j-1)                {                  len=n-1-j-1;                  x=j;                  y=i;                }              }else j=next[j];           }           int index=n-1-x+y+1;           if(x==n-1) {str[n++]='0';/*printf("haha\n");*/}           else  str[n++]=str[index];        }        str[end]='\0';        printf("%s\n",str+end-m);    }    return 0;}        

原创粉丝点击