Submission #64086279


Source Code Expand

#include <bits/stdc++.h>
#define int long long

using namespace std;

const int N = 1e6 + 5, Mod = 998244353;

char s[N];
int n, a[N], cnt, h1[N], h2[N], p[N];

int Hash1(int l, int r) {
  return (h1[r] + Mod - h1[l - 1] * p[r - l + 1] % Mod) % Mod;
}

int Hash2(int l, int r) {
  return (h2[l] + Mod - h2[r + 1] * p[r - l + 1] % Mod) % Mod;
}

signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  cin >> s + 1, n = strlen(s + 1), p[0] = 1;
  for (int i = 1; i <= n; ++i) {
    p[i] = p[i - 1] * 26 % Mod;
  }
  for (int i = 1; i <= n; ++i) {
    h1[i] = (h1[i - 1] * 26 + s[i]) % Mod;
  }
  for (int i = n; i; --i) {
    h2[i] = (h2[i + 1] * 26 + s[i]) % Mod;
  }
  for (int i = n >> 1, pos; ~i; --i) {
    if ((i << 1 | 1) <= n && Hash1(n - i + 1, n) == Hash2(n - i * 2, n - i - 1)) {
      pos = n - i * 2 - 1;
      while (pos >= 1) {
        s[++n] = s[pos--];
      }
      break;
    } else if (Hash1(n - i + 1, n) == Hash2(n - i * 2 + 1, n - i)) {
      pos = n - i * 2;
      while (pos >= 1) {
        s[++n] = s[pos--];
      }
      break;
    }
  }
  cout << s + 1;
  return 0;
}

Submission Info

Submission Time
Task F - ABCBA
User ChickyHas
Language C++ 17 (gcc 12.2)
Score 500
Code Size 1159 Byte
Status AC
Exec Time 14 ms
Memory 16324 KiB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:22:12: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
   22 |   cin >> s + 1, n = strlen(s + 1), p[0] = 1;
      |          ~~^~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 36
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 3460 KiB
sample_02.txt AC 1 ms 3436 KiB
sample_03.txt AC 1 ms 3632 KiB
test_01.txt AC 1 ms 3504 KiB
test_02.txt AC 1 ms 3436 KiB
test_03.txt AC 1 ms 3496 KiB
test_04.txt AC 1 ms 3504 KiB
test_05.txt AC 1 ms 3508 KiB
test_06.txt AC 1 ms 3504 KiB
test_07.txt AC 1 ms 3504 KiB
test_08.txt AC 1 ms 3568 KiB
test_09.txt AC 1 ms 3492 KiB
test_10.txt AC 14 ms 16260 KiB
test_11.txt AC 14 ms 16140 KiB
test_12.txt AC 14 ms 16212 KiB
test_13.txt AC 14 ms 16052 KiB
test_14.txt AC 13 ms 15868 KiB
test_15.txt AC 12 ms 15648 KiB
test_16.txt AC 14 ms 16324 KiB
test_17.txt AC 12 ms 15772 KiB
test_18.txt AC 13 ms 15816 KiB
test_19.txt AC 12 ms 15760 KiB
test_20.txt AC 12 ms 15640 KiB
test_21.txt AC 14 ms 16268 KiB
test_22.txt AC 13 ms 15984 KiB
test_23.txt AC 13 ms 16028 KiB
test_24.txt AC 13 ms 16020 KiB
test_25.txt AC 12 ms 15656 KiB
test_26.txt AC 14 ms 16320 KiB
test_27.txt AC 13 ms 16048 KiB
test_28.txt AC 13 ms 15952 KiB
test_29.txt AC 13 ms 16196 KiB
test_30.txt AC 11 ms 15692 KiB
test_31.txt AC 14 ms 16192 KiB
test_32.txt AC 13 ms 16096 KiB
test_33.txt AC 13 ms 16260 KiB