#include<bits/stdc++.h>
using namespace std;
#define ULL unsigned long long
const int N = 200005;
const ULL hs = 3797;
char in[N];
ULL F[N], L[N], R[N];
ULL seg1(int x, int y)
{
return L[y] - F[y - x + 1] * L[x - 1];
}
ULL seg2(int x, int y)
{
return R[x] - F[y - x + 1] * R[y + 1];
}
int main()
{
int n, lo, hi, mid, ans, mx;
F[0] = 1;
for (int i = 1; i < N; i++) {
F[i] = F[i - 1] * hs;
}
scanf ("%d", &n);
scanf ("%s", in);
L[0] = 0; // Forwar Hasing
for (int i = 0; i < n; i++) {
L[i + 1] = L[i] * hs + in[i];
}
R[n + 1] = 0; // Reverse Hasing
for (int i = n - 1; i >= 0; i--) {
R[i + 1] = R[i + 2] * hs + in[i];
}
mx = 0;// Binary search for odd length
for (int i = 1; i <= n; i++) {
lo = 1;
hi = min(i, n - i + 1);
ans = 0;
while (lo <= hi) {
mid = (lo + hi) / 2;
if (seg1(i - mid + 1, i + mid - 1) == seg2(i - mid + 1, i + mid - 1)) {
ans = mid ;
lo = mid + 1;
}
else {
hi = mid - 1;
}
}
ans = 2 * ans - 1;
mx = max(mx, ans);
}
// Binary search for even length
for (int i = 1; i <= n; i++) {
lo = 0;
hi = min(i, n - i + 1);
ans = 0;
while (lo <= hi) {
mid = (lo + hi) / 2;
if (seg1(i - mid + 1, i + mid) == seg2(i - mid + 1, i + mid)) {
ans = mid ;
lo = mid + 1;
}
else {
hi = mid - 1;
}
}
ans = 2 * ans;
mx = max(mx, ans);
}
printf("%d\n", mx);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiNkZWZpbmUgVUxMIHVuc2lnbmVkIGxvbmcgbG9uZwogCmNvbnN0IGludCBOID0gMjAwMDA1Owpjb25zdCBVTEwgaHMgPSAzNzk3OwogCmNoYXIgaW5bTl07CiAKVUxMIEZbTl0sIExbTl0sIFJbTl07CiAKVUxMIHNlZzEoaW50IHgsIGludCB5KQp7CiAgICByZXR1cm4gTFt5XSAtIEZbeSAtIHggKyAxXSAqIExbeCAtIDFdOwp9CiAKVUxMIHNlZzIoaW50IHgsIGludCB5KQp7CiAgICByZXR1cm4gUlt4XSAtIEZbeSAtIHggKyAxXSAqIFJbeSArIDFdOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBuLCBsbywgaGksIG1pZCwgYW5zLCBteDsKICAgIEZbMF0gPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBOOyBpKyspIHsKICAgICAgICBGW2ldID0gRltpIC0gMV0gKiBoczsKICAgIH0KICAgIHNjYW5mICgiJWQiLCAmbik7CiAgICBzY2FuZiAoIiVzIiwgaW4pOwogCiAgICBMWzBdID0gMDsgICAvLyBGb3J3YXIgSGFzaW5nCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIExbaSArIDFdID0gTFtpXSAqIGhzICsgaW5baV07CiAgICB9CiAKICAgIFJbbiArIDFdID0gMDsgICAvLyBSZXZlcnNlIEhhc2luZwogICAgZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IGktLSkgewogICAgICAgIFJbaSArIDFdID0gUltpICsgMl0gKiBocyArIGluW2ldOwogICAgfQogICAgbXggPSAwOy8vIEJpbmFyeSBzZWFyY2ggZm9yIG9kZCBsZW5ndGgKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgeyAgCiAgICAgICAgbG8gPSAxOwogICAgICAgIGhpID0gbWluKGksIG4gLSBpICsgMSk7CiAgICAgICAgYW5zID0gMDsKICAgICAgICB3aGlsZSAobG8gPD0gaGkpIHsKICAgICAgICAgICAgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgICAgICAgaWYgKHNlZzEoaSAtIG1pZCArIDEsIGkgKyBtaWQgLSAxKSA9PSBzZWcyKGkgLSBtaWQgKyAxLCBpICsgbWlkIC0gMSkpIHsKICAgICAgICAgICAgICAgIGFucyA9IG1pZCA7CiAgICAgICAgICAgICAgICBsbyA9IG1pZCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBoaSA9IG1pZCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYW5zID0gMiAqIGFucyAtIDE7CiAgICAgICAgbXggPSBtYXgobXgsIGFucyk7CiAgICB9CiAgICAvLyBCaW5hcnkgc2VhcmNoIGZvciBldmVuIGxlbmd0aAogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgbG8gPSAwOwogICAgICAgIGhpID0gbWluKGksIG4gLSBpICsgMSk7CiAgICAgICAgYW5zID0gMDsKICAgICAgICB3aGlsZSAobG8gPD0gaGkpIHsKICAgICAgICAgICAgbWlkID0gKGxvICsgaGkpIC8gMjsKICAgICAgICAgICAgaWYgKHNlZzEoaSAtIG1pZCArIDEsIGkgKyBtaWQpID09IHNlZzIoaSAtIG1pZCArIDEsIGkgKyBtaWQpKSB7CiAgICAgICAgICAgICAgICBhbnMgPSBtaWQgOwogICAgICAgICAgICAgICAgbG8gPSBtaWQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaGkgPSBtaWQgLSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFucyA9IDIgKiBhbnM7CiAgICAgICAgbXggPSBtYXgobXgsIGFucyk7CiAgICB9CiAgICBwcmludGYoIiVkXG4iLCBteCk7CiAgICByZXR1cm4gMDsKfQog
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