Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. char v[12];
  7. int pal[12];
  8. void manacher ( int n )
  9. {
  10. int mij = 0;
  11. for ( int i = 1; i <= n; ++i )
  12. {
  13. if ( i > mij )
  14. {
  15. while ( v[i+pal[i]+1] == v[i-pal[i]-1] && i - pal[i] > 1 && i + pal[i] < n )
  16. pal[i]++;
  17. }
  18. else
  19. {
  20. pal[i] = min (mij + pal[mij] - i, pal[mij-(i-mij)]);
  21. while ( v[i+pal[i]+1] == v[i-pal[i]-1] && i - pal[i] > 1 && i + pal[i] < n )
  22. pal[i]++;
  23. if ( i + pal[i] >= mij + pal[mij] )
  24. mij = i;
  25. }
  26. }
  27. }
  28.  
  29. int main()
  30. {
  31. cin>>(v+1);
  32. int len = strlen (v+1);
  33. manacher(len);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement