description: A string is called square if it is some string written twice in a row. For example, the strings "aa", "abcabc", "abab" and "baabaa" are square. But the strings "aaa", "abaaab" and "abcdabc" are not square.
  
  For a given string s determine if it is square.
  
  Input
  
  The first line of input data contains an integer t (1 ≤ t ≤ 100) —the number of test cases.
  
  This is followed by t lines, each containing a description of one test case. The given strings consist only of lowercase Latin letters and have lengths between 1 and 100 inclusive.
  
  Output
  
  For each test case, output on a separate line:
  
    * YES if the string in the corresponding test case is square, 
    * NO otherwise. 
  
  
  
  You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive response).
  
  Example
  
  Input
  
  
  10
  a
  aa
  aaa
  aaaa
  abab
  abcabc
  abacaba
  xxyy
  xyyx
  xyxy
  
  
  Output
  
  
  NO
  YES
  NO
  YES
  YES
  YES
  NO
  NO
  NO
  YES
solution: #include <bits/stdc++.h>
  using namespace std;
  int Solution(std::string l, int len) {
    char* charArray;
    std::string string1;
  std:;
    string string2;
    charArray = &l[0];
    if (len % 2 != 0) {
      std::cout << "NO" << std::endl;
      return 0;
    }
    for (int i = 0; i < len / 2; i++) {
      string1 = string1 + charArray[i];
    }
    int p = len / 2;
    for (int i = p; i != len; i++) {
      string2 = string2 + charArray[i];
    }
    if (string1.compare(string2) == 0) {
      std::cout << "YES" << std::endl;
    } else {
      std::cout << "NO" << std::endl;
    }
    return 0;
  }
  int main(void) {
    int t;
    std::string l;
    std::cin >> t;
    for (int i = 0; i < t; i++) {
      std::cin >> l;
      int len = l.size();
      Solution(l, len);
    }
    return 0;
  }
  