문제
길이 \(N\)인 문자열 \(S\)가 주어진다. \(S\)의 각 문자는 영문 소문자이다. 어떤 문자열 \(T\)와 정수 \(m\) (\(m \ge 2\))이 있어, 빈 문자열에 \(T\)를 \(m\)번 이어 붙인 결과가 \(S\)와 같으면 \(S\)는 주기적이라고 한다. \(S\)가 주기적이면 Yes를, 아니면 No를 출력하는 프로그램을 작성하라. |
입력
입력은 다음 형식으로 주어진다.
\(N\)
\(S\)
- 첫째 줄에 문자열의 길이 \(N\)이 주어진다.
- 둘째 줄에 공백 없이 문자열 \(S\)가 한 줄로 주어진다.
- \(2 \le N \le 1000\)
- \(S\)의 길이는 \(N\)이고, 각 문자는 영문 소문자이다.
- \(N\)은 정수이다.
출력
다음 형식으로 출력한다.
첫째 줄에, \(S\)가 주기적이면 Yes, 아니면 No를 출력한다.
예시 1
입력
6
ababab
출력
Yes
설명
빈 문자열에 ab를 \(3\)번 이어 붙이면 ababab가 되므로 \(S\)는 주기적이다.
예시 2
입력
7
abcabca
출력
No
설명
빈 문자열에 abcabca를 \(1\)번만 이어 붙이면 \(S\)와 같아지지만, \(1\)번이므로 주기적이 아니다.
예시 3
입력
2
aa
출력
Yes
설명
빈 문자열에 a를 \(2\)번 이어 붙이면 aa가 된다.
예시 4
입력
8
ababcdcd
출력
No