Submission #246284

#TimeUsernameProblemLanguageResultExecution timeMemory
246284vanicPalinilap (COI16_palinilap)C++14
54 / 100
299 ms2048 KiB
#include <iostream>
#include <cstdio>
#include <math.h>
#include <algorithm>


using namespace std;

const int maxn=5005;

string s;
int jos[maxn][30];

int rijesi(int x, bool p1){
	int l, d;
	int br=0;
	if(p1){
		br++;
		l=x-1;
		d=x+1;
	}
	else{
		l=x;
		d=x+1;
	}
	bool p=1;
	int l1=0, d1=s.size()-1;
	while(l>-1 && d<s.size()){
		if(s[l]==s[d]){
			if(p){
				if(l!=d){
				}
				br++;
			}
			else{
				jos[l1][s[d1]-'a']++;
				jos[d1][s[l1]-'a']++;
			}
		}
		else{
			if(p){
				l1=l;
				d1=d;
				jos[l1][s[d1]-'a']++;
				jos[d1][s[l1]-'a']++;
				p=0;
			}
			else{
				break;
			}
		}
		l--;
		d++;
	}
	int xx=0;
	if(p1){
		xx++;
		l=x-1;
		d=x+1;
	}
	else{
		l=x;
		d=x+1;
	}
	while(l>=l1 && d<=d1){
		for(int i=0; i<26; i++){
			jos[l][i]-=br-xx;
			jos[d][i]-=br-xx;
		}
		xx++;
		l--;
		d++;
	}
	return br;
}


int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> s;
	int br=0;
	for(int i=0; i<s.size(); i++){
		br+=rijesi(i, 1);
		br+=rijesi(i, 0);
	}
	int maksi=0;
	for(int i=0; i<s.size(); i++){
		for(int j=0; j<26; j++){
			maksi=max(maksi, jos[i][j]);
		}
	}
	cout << br+maksi << '\n';
	return 0;
}

Compilation message (stderr)

palinilap.cpp: In function 'int rijesi(int, bool)':
palinilap.cpp:28:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(l>-1 && d<s.size()){
                ~^~~~~~~~~
palinilap.cpp: In function 'int main()':
palinilap.cpp:84:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<s.size(); i++){
               ~^~~~~~~~~
palinilap.cpp:89:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<s.size(); i++){
               ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...