Submission #48007

#TimeUsernameProblemLanguageResultExecution timeMemory
48007E869120Palindromes (APIO14_palindrome)C++14
23 / 100
937 ms17740 KiB
#include <iostream>
#include <string>
#include <algorithm>
#include <map>
using namespace std;

long long roll1[1009][1009], roll2[1009][1009]; string S;
map<long long, long long>M;

int main() {
	cin >> S;
	for (int i = 0; i < S.size(); i++) {
		for (int j = i; j < S.size(); j++) {
			if (j != 0) roll1[i][j] = roll1[i][j - 1] * 331LL;
			roll1[i][j] += (S[j] - 'a' + 1);
		}
	}
	for (int i = 0; i < S.size(); i++) {
		for (int j = i; j >= 0; j--) {
			roll2[i][j] = roll2[i][j + 1] * 331LL;
			roll2[i][j] += (S[j] - 'a' + 1);
		}
	}
	long long maxn = 0;
	for (int i = 0; i < S.size(); i++) {
		for (int j = i; j < S.size(); j++) {
			if (roll1[i][j] != roll2[j][i]) continue;
			M[roll1[i][j]] += (j - i + 1);
			maxn = max(maxn, M[roll1[i][j]]);
		}
	}
	cout << maxn << endl;
	return 0;
}

Compilation message (stderr)

palindrome.cpp: In function 'int main()':
palindrome.cpp:12:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < S.size(); i++) {
                  ~~^~~~~~~~~~
palindrome.cpp:13:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = i; j < S.size(); j++) {
                   ~~^~~~~~~~~~
palindrome.cpp:18:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < S.size(); i++) {
                  ~~^~~~~~~~~~
palindrome.cpp:25:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < S.size(); i++) {
                  ~~^~~~~~~~~~
palindrome.cpp:26:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = i; j < S.size(); j++) {
                   ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...