#include<stdio.h>
#include<cstring>
#include<iostream>
#include<limits.h>
using namespace std;
int palindromicsumstring( char * s, int n) {
int sum[ n] [ n] ;
int ans = INT_MIN ;
for ( int i = 0 ; i< n; i++ ) {
sum[ i] [ i] = s[ i] - '0' ;
}
// This is length of substring, that can be your possible answer
for ( int l = 2 ; l<= n; l++ ) {
// This is the starting index of your substring
for ( int i = 0 ; i<= n- l; i++ ) {
//This is end point of the substring
int j = i+ l- 1 ;
//This is middle point of substring
int k = i+ ( l/ 2 ) - 1 ;
// Find total sum of the substring from
//previous memorized states : Dynamic Programming
sum[ i] [ j] = sum[ i] [ k] + sum[ k+ 1 ] [ j] ;
// l is even , then check for the possible answer
if ( l% 2 == 0 ) {
if ( sum[ i] [ k] == sum[ k+ 1 ] [ j] ) {
ans = max( ans , l ) ;
}
}
}
}
return ans;
}
int main( ) {
//Number
int sum;
char s[ ] = "1538023" ;
//Function Call
palindromicsumstring( s,strlen ( s) ) ;
cout < ‹ans<< endl;
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8Y3N0cmluZz4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGxpbWl0cy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBwYWxpbmRyb21pY3N1bXN0cmluZyhjaGFyICpzLCBpbnQgbil7CgkKCWludCBzdW1bbl1bbl07CglpbnQgYW5zID0gSU5UX01JTjsKCWZvcihpbnQgaSA9MCA7aTxuO2krKyl7CgkJc3VtW2ldW2ldPXNbaV0tJzAnOwoJfQoJLy8gVGhpcyBpcyBsZW5ndGggb2Ygc3Vic3RyaW5nLCB0aGF0IGNhbiBiZSB5b3VyIHBvc3NpYmxlIGFuc3dlcgoJCglmb3IoaW50IGwgPSAyO2w8PW47bCsrKXsKCQkvLyBUaGlzIGlzIHRoZSBzdGFydGluZyBpbmRleCBvZiB5b3VyIHN1YnN0cmluZwoJCWZvcihpbnQgaSA9IDA7aTw9bi1sO2krKyl7CgkJCS8vVGhpcyBpcyBlbmQgcG9pbnQgb2YgdGhlIHN1YnN0cmluZwoJCQlpbnQgaiA9IGkrbC0xOwoJCQkvL1RoaXMgaXMgbWlkZGxlIHBvaW50IG9mIHN1YnN0cmluZyAKCQkJaW50IGsgPSBpKyhsLzIpLTE7CgkJCQoJCQkKCQkJLy8gRmluZCB0b3RhbCBzdW0gb2YgdGhlIHN1YnN0cmluZyBmcm9tIAoJCQkvL3ByZXZpb3VzIG1lbW9yaXplZCBzdGF0ZXMgOiBEeW5hbWljIFByb2dyYW1taW5nCgkJCXN1bVtpXVtqXSA9IHN1bVtpXVtrXStzdW1baysxXVtqXTsKCQkJCgkJCS8vIGwgaXMgZXZlbiAsIHRoZW4gY2hlY2sgZm9yIHRoZSBwb3NzaWJsZSBhbnN3ZXIKCQkJaWYobCUyPT0wKXsKCQkJCWlmKHN1bVtpXVtrXSA9PSBzdW1baysxXVtqXSl7CgkJCQkJCgkJCQkJYW5zID0gbWF4KGFucyAsIGwgKTsKCQkJCX0KCQkJfQoJCQkgCQoJCX0JCgkJCgl9CgkKCXJldHVybiBhbnM7Cn0gCiAKIAppbnQgbWFpbigpewovL051bWJlcgppbnQgc3VtOwpjaGFyIHNbXSA9ICIxNTM4MDIzIjsKLy9GdW5jdGlvbiBDYWxsCiBwYWxpbmRyb21pY3N1bXN0cmluZyhzLHN0cmxlbihzKSk7CiAKY291dDzigLlhbnM8PGVuZGw7CiAKcmV0dXJuIDA7Cn0=