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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

/**Author:Sagor*/

#include<bits/stdc++.h>

using namespace std;
#define pri(n)          printf("%d\n",n)
#define prll(n)         printf("%lld\n",n)
#define prd(n)          printf("%lf\n",n)
#define scll(n)         scanf("%lld",&n)
#define sci(n)          scanf("%d",&n)
#define scd(n)          scanf("%lf",&n)
#define pi              acos(-1)
#define ll              long long
#define pb              push_back
#define vsort(v)        sort(v.begin(),v.end())
#define asort(n)        sort(ar,ar+n)
#define for1(i,n)       for(i=1;i<=n;i++)
#define for0(i,n)       for(i=0;i<n;i++)
#define mod             1000000007

void SieveOfEratosthenes(ll n)
{
	bool prime[n+1];
	ll i,p;
	memset(prime, true, sizeof(prime));
	for(i=4;i<=n;i+=2) prime[i]=false;

	for (p=3; p*p<=n; p+=2)
	{
		if (prime[p] == true)
		{
			for (i=p*p; i<=n; i += (2*p))
				prime[i] = false;
		}
	}
	cout<<"2\n3\n";
	ll cnt=2;
	for (p=5; p<=n; p+=6){
        if(prime[p]){
            cnt++;
            cout<<p<<"\n";
        }
        if(prime[p+2]){
            cnt++;
            cout<<p+2<<"\n";
        }

	}
}

int main()
{
    /**ios_base::sync_with_stdio(false);
    cin.tie(NULL);/**Dont't use scanf of printf*/
    ll t,a,b,x,n,i,j,len,m;
    string st;
    cin>>st;
    len=st.size();
    a=len/2;
    for(i=0,j=a+1;i<a;i++,j++){
        if(st[i]!=st[j]){
            cout<<"No\n";
            return 0;
        }
    }
    cout<<"Yes\n";
    return 0;
}