Submission details
Task:Longest palindrome
Sender:aalto25j_001
Submission time:2025-11-05 17:20:03 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#2ACCEPTED0.00 sdetails
#30.09 sdetails
#4ACCEPTED0.09 sdetails
#50.09 sdetails
#6ACCEPTED0.09 sdetails
#70.06 sdetails
#80.05 sdetails
#90.00 sdetails
#10ACCEPTED0.00 sdetails
#110.02 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#140.00 sdetails
#150.00 sdetails
#16ACCEPTED0.03 sdetails

Code

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<ll> vl;
typedef vector<ll> vi;
typedef pair<ll,ll> pl;

#define F first
#define S second
#define PB push_back
#define MP make_pair

#define REP(i,a,b) for (ll i = a; i < b; i++)
#define rep(i,a,b) for (int i = a; i < b; i++)
#define sz(x) (int)(x).size()

array<vi, 2> manacher(const string& s) {
    int n = sz(s);
    array<vi,2> p = {vi(n+1), vi(n)};
    rep(z,0,2) for (int i=0,l=0,r=0; i < n; i++) {
        int t = r-i+!z;
        if (i<r) p[z][i] = min(t, (int)p[z][l+t]);
        int L = i-p[z][i], R = i+p[z][i]-!z;
        while (L>=1 && R+1<n && s[L-1] == s[R+1])
        p[z][i]++, L--, R++;
        if (R>r) l=L, r=R;
    }
    return p;
}

int main() {
    string s;
    cin >> s;

    array<vi, 2> p;

    p = manacher(s);


    ll max_p = 0;
    ll id = 0;
    bool even = true;
    REP(i,0,(ll)s.size()) {
        if(p[0][i] > max_p) {
            even = true;
            max_p = p[0][i];
            id = i;
        }
        if(p[1][i] >= max_p) {
            even = false;
            max_p = p[1][i];
            id = i;
        }
        //cout << p[0][i]  << " ";
    }

    //cout << "max_p " << max_p << " id " << id << endl;

    ll plus = 0;
    if(even) plus = 1;
    REP(i,id-max_p,id+max_p+plus+1) {
        cout << s[i];
    }
    
    
}

Test details

Test 1

Verdict:

input
aaaaaaaaaa

correct output
aaaaaaaaaa

user output
aaaaaaaaaaU

Test 2

Verdict: ACCEPTED

input
ababababab

correct output
ababababa

user output
babababab

Test 3

Verdict:

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
Truncated

Test 4

Verdict: ACCEPTED

input
ababababababababababababababab...

correct output
ababababababababababababababab...

user output
bababababababababababababababa...
Truncated

Test 5

Verdict:

input
aztdvxzjwxtrludymvpradgbdpgnrq...

correct output
aztdvxzjwxtrludymvpradgbdpgnrq...

user output
aztdvxzjwxtrludymvpradgbdpgnrq...
Truncated

Test 6

Verdict: ACCEPTED

input
vvfigwwsyxbukedgcfyibvtbclybud...

correct output
vvfigwwsyxbukedgcfyibvtbclybud...

user output
vvfigwwsyxbukedgcfyibvtbclybud...
Truncated

Test 7

Verdict:

input
abaabaaaaaaabaababbbbbbabaaabb...

correct output
babbbabbbaabbbbaabbbbbbbbaabbb...

user output
babbbabbbaabbbbaabbbbbbbbaabbb...

Test 8

Verdict:

input
txolestmgyepwrpofxyesjtsfkhjac...

correct output
yxnbaabnxy

user output
yxnbaabnxyph

Test 9

Verdict:

input
ihpohpzoffel

correct output
ff

user output
ffel

Test 10

Verdict: ACCEPTED

input
flexflexvpqxierullgcfckjqflexf...

correct output
cfc

user output
cfc

Test 11

Verdict:

input
aabbabaabbaababbabaababbaabbab...

correct output
abaababbaabbabaababbabaabbaaba...

user output
abaababbaabbabaababbabaabbaaba...
Truncated

Test 12

Verdict: ACCEPTED

input
obsession

correct output
ses

user output
ses

Test 13

Verdict: ACCEPTED

input
abcxcbaxcba

correct output
abcxcba

user output
abcxcba

Test 14

Verdict:

input
zzabc

correct output
zz

user output
zzab

Test 15

Verdict:

input
aaccaabbaaccaaccaabbaaccaa

correct output
aaccaabbaaccaaccaabbaaccaa

user output
aaccaabbaaccaaccaabbaaccaa

Test 16

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
Truncated