はまやんはまやんはまやん

hamayanhamayan's blog

Echo [AtCoder Beginner Contest 145 B]

https://atcoder.jp/contests/abc145/tasks/abc145_b

解説

https://atcoder.jp/contests/abc145/submissions/8482706

Nが奇数であれば、同じものが2回繰り返された文字列であることはありえない。
Nが偶数なら、Sを前半と後半に分割して等しいかどうかを判定すればいい。

int N; string S;
//---------------------------------------------------------------------------------------------------
#define yes "Yes"
#define no "No"
string solve() {
    if (N % 2 == 1) return no;

    string A = S.substr(0, N / 2);
    string B = S.substr(N / 2);

    if (A == B) return yes;
    return no;
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> S;
    cout << solve() << endl;
}