이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
string U;
cin >> n >> U;
string A;
int g = 0;
for (auto S : {U.substr(0, n / 2), U.substr((n + 1) / 2, n / 2)}) {
string T = S + S;
int lcp = 0, lcs = 0;
while (lcp < n - 1 && U[lcp] == T[lcp]) ++lcp;
while (lcs < n - 1 && U[n - 1 - lcs] == T[n - 2 - lcs]) ++lcs;
if (lcp + lcs >= n - 1) A = S, g++;
if (U.substr(0, n / 2) == U.substr((n + 1) / 2, n / 2)) break;
}
cout << (g == 0 || !(n % 2) ? "NOT POSSIBLE" : (g == 1 ? A : "NOT UNIQUE"));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |