Problem:
Score : 200 points

Problem Statement

A string S of an odd length is said to be a strong palindrome if and only if all of the following conditions are satisfied:

S is a palindrome.

Let N be the length of S. The string formed by the 1-st through ((N-1)/2)-th characters of S is a palindrome.

The string consisting of the (N+3)/2-st through N-th characters of S is a palindrome.

Determine whether S is a strong palindrome.

Constraints

S consists of lowercase English letters.

The length of S is an odd number between 3 and 99 (inclusive).

Input

Input is given from Standard Input in the following format:

S

Output

If S is a strong palindrome, print Yes;
otherwise, print No.

Sample Input 1

akasaka

Sample Output 1

Yes

S is akasaka.

The string formed by the 1-st through the 3-rd characters is aka.

The string formed by the 5-th through the 7-th characters is aka.
All of these are palindromes, so S is a strong palindrome.

Sample Input 2

level

Sample Output 2

No

Sample Input 3

atcoder

Sample Output 3

No

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Wrong Answer)

import java.util.*;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
 
        String S = sc.next();
        int N = S.length();
 
        loop:for(int i=0; i<N/2; i++){
            if(S.charAt(i)!=S.charAt(N-1-i)){
                System.out.println("No");
                break;
            }
            if(i==N/2-1){
                String Ssub = S.substring(0, (N - 1) / 2);
                int Nsub = Ssub.length();
                if(Nsub==1){
                    System.out.println("Yes");
                    return;
                }
                for(int j=0; j<Nsub/2; j++){
                    if(Ssub.charAt(j)!=Ssub.charAt(Nsub-1-j)){
                        System.out.println("No");
                        break loop;
                    }
                    if(j==Nsub/2-1){
                        String Sa = S.substring((N + 1) / 2 - 1);
                        int Na = Sa.length();
                        if(Na==1){
                            System.out.println("Yes");
                            return;
                        }
                        for(int k=0; k<Na/2; k++){
                            if(Sa.charAt(k)!=Sa.charAt(Na-1-j)){
                                System.out.println("No");
                                break loop;
                            }
                            if(k==Na/2-1){
                                System.out.println("Yes");
                            }
                        }
                    }
                }
            }
        }
    }
}