/*
____ _ _ _ _ _ _ _ _ _____ _ _
| _ \ (_) | | (_) | | (_) | | | | (_) / ____| | (_)
| |_) | ___ _ ___| |__ ___ _ __ _ ___ __ _ ___| | __ _ ___ ___ _ ___ _ __ _ __ ___ | |__ | | ___ _ __ ___ _ _ __ | | | |__ _ _ __ __ _
| _ < / _ \ |/ __| '_ \ / _ \ '_ \ | / __| / _` | / __| |/ _` / __/ __| |/ __| | '_ \| '__/ _ \| '_ \| |/ _ \ '_ ` _ \ | | '_ \ | | | '_ \| | '_ \ / _` |
| |_) | __/ | (__| | | | __/ | | | | \__ \ | (_| | | (__| | (_| \__ \__ \ | (__ | |_) | | | (_) | |_) | | __/ | | | | | | | | | | | |____| | | | | | | | (_| |
|____/ \___|_|\___|_| |_|\___|_| |_| |_|___/ \__,_| \___|_|\__,_|___/___/_|\___| | .__/|_| \___/|_.__/|_|\___|_| |_| |_| |_|_| |_| \_____|_| |_|_|_| |_|\__,_|
| |
|_|
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define debug(x) cerr << #x << " is " << x << "\n";
#define hehe ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define repb(i, a, b) for (int i = b; i >= a; i--)
#define pii pair<int, int>
#define linebreak cout << "---------------------------------------------------------\n"
// good luck
const int MS = 1e5+5;
int n, cnt[26], a[MS];
char letter[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
int32_t main() {
memset(cnt, 0, sizeof(cnt));
cin >> n;
for (int i = 1; i <= n; i++) {
char temp;
cin >> temp;
a[i] = temp-'A';
}
if (n%2 == 0) {
cout << "NOT POSSIBLE\n"; return 0;
}
int m = n/2;
// answer either lies in either half
int left = 1, right = 1, x = m+1;
for (int i = 1; i <= m; i++) {
while (a[i] != a[x] and x <= n) x++;
if (x >= n+1) {
left = 0; break;
}
x++;
}
x = 1;
for (int i = m+2; i <= n; i++) {
while (a[i] != a[x] and x <= m+1) x++;
if (x >= m+2) {
right = 0; break;
}
x++;
}
if (left == 0 and right == 0) {
cout << "NOT POSSIBLE\n";
return 0;
}
if (left == 1 and right == 1) {
for (int i = 1; i <= m; i++) {
if (a[i] != a[i+m+1]) {
cout << "NOT UNIQUE\n";
return 0;
}
}
for (int i = 1; i <= m; i++) cout << letter[a[i]];
}
if (left == 1 and right == 0) {
for (int i = 1; i <= m; i++) cout << letter[a[i]];
return 0;
}
if (right == 1 and left == 0) {
for (int i = m+2; i <= n; i++) cout << letter[a[i]];
return 0;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
512 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
344 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
344 KB |
Output is correct |
11 |
Correct |
0 ms |
344 KB |
Output is correct |
12 |
Correct |
1 ms |
348 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
348 KB |
Output is correct |
15 |
Correct |
0 ms |
348 KB |
Output is correct |
16 |
Correct |
0 ms |
348 KB |
Output is correct |
17 |
Correct |
0 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
344 KB |
Output is correct |
19 |
Correct |
0 ms |
348 KB |
Output is correct |
20 |
Correct |
0 ms |
348 KB |
Output is correct |
21 |
Correct |
0 ms |
348 KB |
Output is correct |
22 |
Correct |
0 ms |
348 KB |
Output is correct |
23 |
Correct |
0 ms |
348 KB |
Output is correct |
24 |
Correct |
0 ms |
348 KB |
Output is correct |
25 |
Correct |
0 ms |
348 KB |
Output is correct |
26 |
Correct |
0 ms |
348 KB |
Output is correct |
27 |
Correct |
0 ms |
348 KB |
Output is correct |
28 |
Correct |
1 ms |
348 KB |
Output is correct |
29 |
Correct |
1 ms |
348 KB |
Output is correct |
30 |
Correct |
0 ms |
348 KB |
Output is correct |
31 |
Correct |
0 ms |
348 KB |
Output is correct |
32 |
Correct |
0 ms |
348 KB |
Output is correct |
33 |
Correct |
0 ms |
348 KB |
Output is correct |
34 |
Correct |
1 ms |
348 KB |
Output is correct |
35 |
Correct |
0 ms |
348 KB |
Output is correct |
36 |
Correct |
0 ms |
348 KB |
Output is correct |
37 |
Correct |
0 ms |
348 KB |
Output is correct |
38 |
Correct |
0 ms |
348 KB |
Output is correct |
39 |
Correct |
0 ms |
348 KB |
Output is correct |
40 |
Correct |
0 ms |
348 KB |
Output is correct |
41 |
Correct |
0 ms |
600 KB |
Output is correct |
42 |
Correct |
0 ms |
344 KB |
Output is correct |
43 |
Correct |
0 ms |
348 KB |
Output is correct |
44 |
Correct |
0 ms |
348 KB |
Output is correct |
45 |
Correct |
0 ms |
348 KB |
Output is correct |
46 |
Correct |
0 ms |
348 KB |
Output is correct |
47 |
Correct |
1 ms |
348 KB |
Output is correct |
48 |
Correct |
1 ms |
348 KB |
Output is correct |
49 |
Correct |
0 ms |
348 KB |
Output is correct |
50 |
Correct |
0 ms |
348 KB |
Output is correct |
51 |
Correct |
0 ms |
348 KB |
Output is correct |
52 |
Correct |
0 ms |
348 KB |
Output is correct |
53 |
Correct |
0 ms |
348 KB |
Output is correct |
54 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
4 ms |
1116 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |