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: Wrong Answer)

#include<bits/stdc++.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{

    string s;
    cin >> s;

    for(int i = 0; i < s.size(); i++)
    {
        s[i]= tolower(s[i]);
    }
    int cnt = 0;

    string s1, s2, s3, s4, s5, s6;
    string temp = s;
    s1 = s;
    reverse(s1.begin(), s1.end());
    //cout << endl <<endl << endl;
    //cout << temp <<" " <<s1  <<endl;


    if(s1 == temp)
        cnt++;

    int x = ((s.size()-1)/2);
    s3 = s.substr(0, x);
    s4 = s3;
    reverse(s3.begin(), s3.end());

    //cout << s3 <<" " << s4 <<endl;
    if(s3 == s4)
        cnt++;

    s5 = s.substr((s.size()+3/2 - 1), s.size());
    s6 = s5;
    reverse(s5.begin(), s5.end());

    //cout << endl <<endl <<endl;
   // cout << s5 <<endl;;

    if(s6 == s5)
        cnt++;




    if(cnt == 3)
        cout << "YES" <<endl;
    else
        cout << "NO" <<endl;







    return 0;
}