Advertisement
Guest User

Untitled

a guest
Jan 6th, 2016
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cstdlib>
  4. #include<cctype>
  5.  
  6. #include<cmath>
  7. #include<iostream>
  8. #include<fstream>
  9. #include<cassert>
  10. #include<string>
  11. #include<vector>
  12. #include<queue>
  13. #include<map>
  14. #include<algorithm>
  15. #include<set>
  16. #include<sstream>
  17. #include<stack>
  18. #include<cassert>
  19.  
  20. using namespace std;
  21.  
  22. #define MEM(a,b) memset(a,(b),sizeof(a))
  23. #define MAX(a,b) ((a) > (b) ? (a) : (b))
  24. #define MIN(a,b) ((a) < (b) ? (a) : (b))
  25. #define MP make_pair
  26. #define pb push_back
  27. #define inf 1000000000
  28. #define M 1000000007
  29.  
  30. typedef long long LL;
  31. typedef pair<LL,LL> pi;
  32. typedef vector<int> vi;
  33. typedef vector<string> vs;
  34. typedef vector<double> vd;
  35.  
  36.  
  37.  
  38. char A[2000005],B[2000005];
  39. int p[2000005];
  40. int best,ans;
  41.  
  42. void KMP(int x,int y,char *X,char *Y)
  43. {
  44. int i,k=0,q;
  45.  
  46. p[1]=0;
  47.  
  48. for(q=2;q<=y;q++)
  49. {
  50. while(k>0 && Y[k]!=Y[q-1]) k=p[k];
  51. if(Y[k]==Y[q-1]) ++k;
  52. p[q]=k;
  53. }
  54.  
  55.  
  56. for(q=i=0;i<x;i++)
  57. {
  58. while(q>0 && Y[q]!=X[i])
  59. q=p[q];
  60. if(Y[q]==X[i])
  61. q++;
  62.  
  63. if(q>best)
  64. {
  65. best=q;
  66. ans=i-q+1;
  67. }
  68. //printf("%d %d %d\n",i,q,i-q+1);
  69. }
  70. }
  71.  
  72. int main()
  73. {
  74. int m,i,j,k,tests,cs=0,t=0,n;
  75.  
  76. scanf("%d%s%s",&n,A,B);
  77.  
  78. int a=strlen(A),b=strlen(B);
  79.  
  80. assert(n>=1 && n<=1000000 && a==b && n==a);
  81.  
  82. for(i=0;i<n;i++) B[b++]=B[i];
  83. B[b]='\0';
  84. //printf("%s %s\n",B,A);
  85.  
  86. best=ans=0;
  87. KMP(b,a,B,A);
  88. printf("%d\n",ans);
  89.  
  90.  
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement