| Task: | Longest palindrome |
| Sender: | aalto25j_006 |
| Submission time: | 2025-11-05 17:02:23 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | TIME LIMIT EXCEEDED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | TIME LIMIT EXCEEDED | -- | details |
| #4 | TIME LIMIT EXCEEDED | -- | details |
| #5 | TIME LIMIT EXCEEDED | -- | details |
| #6 | TIME LIMIT EXCEEDED | -- | details |
| #7 | TIME LIMIT EXCEEDED | -- | details |
| #8 | TIME LIMIT EXCEEDED | -- | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | TIME LIMIT EXCEEDED | -- | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | TIME LIMIT EXCEEDED | -- | details |
Compiler report
input/code.cpp: In function 'std::string longest_palindrome(std::string, std::string)':
input/code.cpp:36:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
36 | for (int i = pattern_length + 1; i < z_array.size(); ++i) {
| ~~^~~~~~~~~~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:58:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
58 | for (int i = 0; i < rev_word.length(); ++i) {
| ~~^~~~~~~~~~~~~~~~~~~Code
#include <bits/stdc++.h>
#include <string>
using namespace std;
vector<int> z(string s) {
int n = s.size();
vector<int> z(n);
z[0] = n;
int x = 0, y = 0;
for (int i = 1; i < n; i++) {
z[i] = max(0,min(z[i-x],y-i+1));
while (i+z[i] < n && s[z[i]] == s[i+z[i]]) {
x = i; y = i+z[i]; z[i]++;
}
}
/*
for (int i = 0; i < z.size(); ++i)
cout << z[i] << " ";
cout << endl;
*/
return z;
}
string longest_palindrome(string word, string pattern) {
string max_palindrome;
int pattern_length = pattern.length();
string combined = pattern + "#" + word;
vector<int> z_array = z(combined);
int max_length = 0;
for (int i = pattern_length + 1; i < z_array.size(); ++i) {
if (z_array[i] > max_length) {
max_length = z_array[i];
max_palindrome = pattern.substr(0, max_length);
}
}
return max_palindrome;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string word;
cin >> word;
string rev_word = word;
reverse(rev_word.begin(), rev_word.end());
string max_palindrome = "";
for (int i = 0; i < rev_word.length(); ++i) {
string pattern = rev_word.substr(i, rev_word.length() - i);
string palindrome = longest_palindrome(word, pattern);
if (palindrome.length() > max_palindrome.length())
max_palindrome = palindrome;
}
cout << max_palindrome << "\n";
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| aaaaaaaaaa |
| correct output |
|---|
| aaaaaaaaaa |
| user output |
|---|
| aaaaaaaaaa |
Test 2
Verdict: ACCEPTED
| input |
|---|
| ababababab |
| correct output |
|---|
| ababababa |
| user output |
|---|
| babababab |
Test 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| user output |
|---|
| (empty) |
Test 4
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| ababababababababababababababab... |
| correct output |
|---|
| ababababababababababababababab... |
| user output |
|---|
| (empty) |
Test 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| aztdvxzjwxtrludymvpradgbdpgnrq... |
| correct output |
|---|
| aztdvxzjwxtrludymvpradgbdpgnrq... |
| user output |
|---|
| (empty) |
Test 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| vvfigwwsyxbukedgcfyibvtbclybud... |
| correct output |
|---|
| vvfigwwsyxbukedgcfyibvtbclybud... |
| user output |
|---|
| (empty) |
Test 7
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| abaabaaaaaaabaababbbbbbabaaabb... |
| correct output |
|---|
| babbbabbbaabbbbaabbbbbbbbaabbb... |
| user output |
|---|
| (empty) |
Test 8
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| txolestmgyepwrpofxyesjtsfkhjac... |
| correct output |
|---|
| yxnbaabnxy |
| user output |
|---|
| (empty) |
Test 9
Verdict: ACCEPTED
| input |
|---|
| ihpohpzoffel |
| correct output |
|---|
| ff |
| user output |
|---|
| ff |
Test 10
Verdict: ACCEPTED
| input |
|---|
| flexflexvpqxierullgcfckjqflexf... |
| correct output |
|---|
| cfc |
| user output |
|---|
| cfc |
Test 11
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| aabbabaabbaababbabaababbaabbab... |
| correct output |
|---|
| abaababbaabbabaababbabaabbaaba... |
| user output |
|---|
| (empty) |
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: ACCEPTED
| input |
|---|
| zzabc |
| correct output |
|---|
| zz |
| user output |
|---|
| zz |
Test 15
Verdict: ACCEPTED
| input |
|---|
| aaccaabbaaccaaccaabbaaccaa |
| correct output |
|---|
| aaccaabbaaccaaccaabbaaccaa |
| user output |
|---|
| aaccaabbaaccaaccaabbaaccaa |
Test 16
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| correct output |
|---|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
| user output |
|---|
| (empty) |
