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 JavaScript (Node.js 12.16.1) (judge verdict: Accepted)

// inputに入力データ全体が入る
function Main(input) {
  // 1行目がinput[0], 2行目がinput[1], …に入る
  var ans = "No";
  input = input.trim().split("\n");
  // const [X] = input[0].split(" ").map((n) => parseInt(n));
	var S = input[0];
	if (kaibun(S) && 
	kaibun(S.slice(0, Math.floor(S.length / 2))) &&
	kaibun(S.slice(Math.ceil(S.length / 2)))) {
		ans = 'Yes'
	}
	

  function kaibun(str) {
		flg = true
    for (var i = 0; i < str.length /2; i++) {
      if (str[i] != str[str.length - i - 1]) {
				flg = false
        break;
      }
		}
		return flg
  }

  //出力
  console.log(ans);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
// Main(require("fs").readFileSync("./input.txt", "utf-8"));