fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ULL unsigned long long
  6.  
  7. const int N = 200005;
  8. const ULL hs = 3797;
  9.  
  10. char in[N];
  11.  
  12. ULL F[N], L[N], R[N];
  13.  
  14. ULL seg1(int x, int y)
  15. {
  16. return L[y] - F[y - x + 1] * L[x - 1];
  17. }
  18.  
  19. ULL seg2(int x, int y)
  20. {
  21. return R[x] - F[y - x + 1] * R[y + 1];
  22. }
  23.  
  24. int main()
  25. {
  26. int n, lo, hi, mid, ans, mx;
  27. F[0] = 1;
  28. for (int i = 1; i < N; i++) {
  29. F[i] = F[i - 1] * hs;
  30. }
  31. scanf ("%d", &n);
  32. scanf ("%s", in);
  33.  
  34. L[0] = 0; // Forwar Hasing
  35. for (int i = 0; i < n; i++) {
  36. L[i + 1] = L[i] * hs + in[i];
  37. }
  38.  
  39. R[n + 1] = 0; // Reverse Hasing
  40. for (int i = n - 1; i >= 0; i--) {
  41. R[i + 1] = R[i + 2] * hs + in[i];
  42. }
  43. mx = 0;// Binary search for odd length
  44. for (int i = 1; i <= n; i++) {
  45. lo = 1;
  46. hi = min(i, n - i + 1);
  47. ans = 0;
  48. while (lo <= hi) {
  49. mid = (lo + hi) / 2;
  50. if (seg1(i - mid + 1, i + mid - 1) == seg2(i - mid + 1, i + mid - 1)) {
  51. ans = mid ;
  52. lo = mid + 1;
  53. }
  54. else {
  55. hi = mid - 1;
  56. }
  57. }
  58. ans = 2 * ans - 1;
  59. mx = max(mx, ans);
  60. }
  61. // Binary search for even length
  62. for (int i = 1; i <= n; i++) {
  63. lo = 0;
  64. hi = min(i, n - i + 1);
  65. ans = 0;
  66. while (lo <= hi) {
  67. mid = (lo + hi) / 2;
  68. if (seg1(i - mid + 1, i + mid) == seg2(i - mid + 1, i + mid)) {
  69. ans = mid ;
  70. lo = mid + 1;
  71. }
  72. else {
  73. hi = mid - 1;
  74. }
  75. }
  76. ans = 2 * ans;
  77. mx = max(mx, ans);
  78. }
  79. printf("%d\n", mx);
  80. return 0;
  81. }
  82.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#include<bits/stdc++.h>
^
Main.java:1: error: class, interface, or enum expected
#include<bits/stdc++.h>
        ^
Main.java:5: error: illegal character: '#'
#define ULL unsigned long long
^
Main.java:5: error: class, interface, or enum expected
#define ULL unsigned long long
        ^
Main.java:8: error: class, interface, or enum expected
const ULL hs = 3797;
^
Main.java:10: error: class, interface, or enum expected
char in[N];
^
Main.java:12: error: class, interface, or enum expected
ULL F[N], L[N], R[N];
^
Main.java:14: error: class, interface, or enum expected
ULL seg1(int x, int y)
^
Main.java:17: error: class, interface, or enum expected
}
^
Main.java:22: error: class, interface, or enum expected
}
^
Main.java:27: error: class, interface, or enum expected
    F[0] = 1;
    ^
Main.java:28: error: class, interface, or enum expected
    for (int i = 1; i < N; i++) {
    ^
Main.java:28: error: class, interface, or enum expected
    for (int i = 1; i < N; i++) {
                    ^
Main.java:28: error: class, interface, or enum expected
    for (int i = 1; i < N; i++) {
                           ^
Main.java:30: error: class, interface, or enum expected
    }
    ^
Main.java:32: error: class, interface, or enum expected
    scanf ("%s", in);
    ^
Main.java:34: error: class, interface, or enum expected
    L[0] = 0;   // Forwar Hasing
    ^
Main.java:35: error: class, interface, or enum expected
    for (int i = 0; i < n; i++) {
    ^
Main.java:35: error: class, interface, or enum expected
    for (int i = 0; i < n; i++) {
                    ^
Main.java:35: error: class, interface, or enum expected
    for (int i = 0; i < n; i++) {
                           ^
Main.java:37: error: class, interface, or enum expected
    }
    ^
Main.java:40: error: class, interface, or enum expected
    for (int i = n - 1; i >= 0; i--) {
    ^
Main.java:40: error: class, interface, or enum expected
    for (int i = n - 1; i >= 0; i--) {
                        ^
Main.java:40: error: class, interface, or enum expected
    for (int i = n - 1; i >= 0; i--) {
                                ^
Main.java:42: error: class, interface, or enum expected
    }
    ^
Main.java:44: error: class, interface, or enum expected
    for (int i = 1; i <= n; i++) {  
    ^
Main.java:44: error: class, interface, or enum expected
    for (int i = 1; i <= n; i++) {  
                    ^
Main.java:44: error: class, interface, or enum expected
    for (int i = 1; i <= n; i++) {  
                            ^
Main.java:46: error: class, interface, or enum expected
        hi = min(i, n - i + 1);
        ^
Main.java:47: error: class, interface, or enum expected
        ans = 0;
        ^
Main.java:48: error: class, interface, or enum expected
        while (lo <= hi) {
        ^
Main.java:50: error: class, interface, or enum expected
            if (seg1(i - mid + 1, i + mid - 1) == seg2(i - mid + 1, i + mid - 1)) {
            ^
Main.java:52: error: class, interface, or enum expected
                lo = mid + 1;
                ^
Main.java:53: error: class, interface, or enum expected
            }
            ^
Main.java:56: error: class, interface, or enum expected
            }
            ^
Main.java:59: error: class, interface, or enum expected
        mx = max(mx, ans);
        ^
Main.java:60: error: class, interface, or enum expected
    }
    ^
Main.java:62: error: class, interface, or enum expected
    for (int i = 1; i <= n; i++) {
                    ^
Main.java:62: error: class, interface, or enum expected
    for (int i = 1; i <= n; i++) {
                            ^
Main.java:64: error: class, interface, or enum expected
        hi = min(i, n - i + 1);
        ^
Main.java:65: error: class, interface, or enum expected
        ans = 0;
        ^
Main.java:66: error: class, interface, or enum expected
        while (lo <= hi) {
        ^
Main.java:68: error: class, interface, or enum expected
            if (seg1(i - mid + 1, i + mid) == seg2(i - mid + 1, i + mid)) {
            ^
Main.java:70: error: class, interface, or enum expected
                lo = mid + 1;
                ^
Main.java:71: error: class, interface, or enum expected
            }
            ^
Main.java:74: error: class, interface, or enum expected
            }
            ^
Main.java:77: error: class, interface, or enum expected
        mx = max(mx, ans);
        ^
Main.java:78: error: class, interface, or enum expected
    }
    ^
Main.java:80: error: class, interface, or enum expected
    return 0;
    ^
Main.java:81: error: class, interface, or enum expected
}
^
50 errors
stdout
Standard output is empty