From b4f51aa121b3b8d764493a4cbbc98e7077f6dcd8 Mon Sep 17 00:00:00 2001 From: oncsr Date: Fri, 5 Dec 2025 01:47:10 +0900 Subject: [PATCH] =?UTF-8?q?[20251205]=20BOJ=20/=20P5=20/=20=EA=B0=80?= =?UTF-8?q?=EC=9E=A5=20=EA=B8=B4=20=ED=8C=B0=EB=A6=B0=EB=93=9C=EB=A1=AC=20?= =?UTF-8?q?=EB=B6=80=EB=B6=84=20=EB=AC=B8=EC=9E=90=EC=97=B4=20/=20?= =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=A4=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 \353\254\270\354\236\220\354\227\264.md" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "khj20006/202512/05 BOJ P5 \352\260\200\354\236\245 \352\270\264 \355\214\260\353\246\260\353\223\234\353\241\254 \353\266\200\353\266\204 \353\254\270\354\236\220\354\227\264.md" diff --git "a/khj20006/202512/05 BOJ P5 \352\260\200\354\236\245 \352\270\264 \355\214\260\353\246\260\353\223\234\353\241\254 \353\266\200\353\266\204 \353\254\270\354\236\220\354\227\264.md" "b/khj20006/202512/05 BOJ P5 \352\260\200\354\236\245 \352\270\264 \355\214\260\353\246\260\353\223\234\353\241\254 \353\266\200\353\266\204 \353\254\270\354\236\220\354\227\264.md" new file mode 100644 index 00000000..243c86ce --- /dev/null +++ "b/khj20006/202512/05 BOJ P5 \352\260\200\354\236\245 \352\270\264 \355\214\260\353\246\260\353\223\234\353\241\254 \353\266\200\353\266\204 \353\254\270\354\236\220\354\227\264.md" @@ -0,0 +1,24 @@ +```cpp +#include +using namespace std; + +string t, s = "#"; +int A[222222]{}, C = 1, R = 1; + +int main() { + cin.tie(0)->sync_with_stdio(0); + + cin >> t; + for (char i : t) s += i, s += "#"; + + int ans = 0; + for (int i = 1; i < s.size(); i++) { + A[i] = min(A[2 * C - i], R - i); + while (i > A[i] && i + A[i] + 1 < s.size() && s[i - A[i] - 1] == s[i + A[i] + 1]) A[i]++; + if (i + A[i] >= R) C = i, R = i + A[i]; + ans = max(ans, A[i]); + } + cout << ans; + +} +```