# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
852937 | 2023-09-23T08:35:23 Z | lovrot | Three Friends (BOI14_friends) | C++17 | 113 ms | 36556 KB |
#include <cstdio> using namespace std; typedef long long ll; const int N = 2e6 + 10; const ll B = 101; int n; char STR[N]; ll H[N], P[N]; int main() { scanf("%d", &n); P[0] = 1; for(int i = 1; i <= n; ++i) { P[i] = P[i - 1] * B; scanf(" %c", STR + i); H[i] = H[i - 1] + P[i - 1] * (ll) (STR[i] - 'A' + 1); } if(n == 1 || (n & 1) == 0) { printf("NOT POSSIBLE\n"); return 0; } int m = n >> 1; int l = -1, r = -1; ll h = -1; for(int i = 1; i <= n; ++i) { if(i > m) { ll a = H[m] * P[n - m]; ll b = H[n] - H[i] + (H[i - 1] - H[m]) * B; if(a == b) { if(h != -1 && b != h) { printf("NOT UNIQUE\n"); return 0; } l = 1; r = m; h = b; } } else { ll a = H[n] - H[m + 1]; ll b = (H[m + 1] - H[i] + H[i - 1] * B) * P[n - m - 1]; // if(i == 3) printf("%d %d\n", a, b); if(a == b) { if(h != -1 && b != h) { printf("NOT UNIQUE\n"); return 0; } l = m + 2; r = n; h = b; } } } if(l == -1) printf("NOT POSSIBLE\n"); else { for(int i = l; i <= r; ++i) printf("%c", STR[i]); printf("\n"); } return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2392 KB | Output is correct |
2 | Correct | 1 ms | 2392 KB | Output is correct |
3 | Correct | 0 ms | 2484 KB | Output is correct |
4 | Correct | 0 ms | 2396 KB | Output is correct |
5 | Correct | 0 ms | 2396 KB | Output is correct |
6 | Correct | 1 ms | 2396 KB | Output is correct |
7 | Correct | 0 ms | 2396 KB | Output is correct |
8 | Correct | 0 ms | 2396 KB | Output is correct |
9 | Correct | 1 ms | 2396 KB | Output is correct |
10 | Correct | 0 ms | 2396 KB | Output is correct |
11 | Correct | 0 ms | 2396 KB | Output is correct |
12 | Correct | 0 ms | 2396 KB | Output is correct |
13 | Correct | 0 ms | 2396 KB | Output is correct |
14 | Correct | 0 ms | 2396 KB | Output is correct |
15 | Correct | 1 ms | 2396 KB | Output is correct |
16 | Correct | 1 ms | 2396 KB | Output is correct |
17 | Correct | 0 ms | 2396 KB | Output is correct |
18 | Correct | 0 ms | 2392 KB | Output is correct |
19 | Correct | 0 ms | 2396 KB | Output is correct |
20 | Correct | 1 ms | 2396 KB | Output is correct |
21 | Correct | 1 ms | 2396 KB | Output is correct |
22 | Correct | 1 ms | 2396 KB | Output is correct |
23 | Correct | 1 ms | 2396 KB | Output is correct |
24 | Correct | 1 ms | 2396 KB | Output is correct |
25 | Correct | 1 ms | 2396 KB | Output is correct |
26 | Correct | 0 ms | 2396 KB | Output is correct |
27 | Correct | 1 ms | 2396 KB | Output is correct |
28 | Correct | 1 ms | 2396 KB | Output is correct |
29 | Correct | 1 ms | 2396 KB | Output is correct |
30 | Correct | 1 ms | 2396 KB | Output is correct |
31 | Correct | 0 ms | 2480 KB | Output is correct |
32 | Correct | 1 ms | 2648 KB | Output is correct |
33 | Correct | 1 ms | 2396 KB | Output is correct |
34 | Correct | 1 ms | 2396 KB | Output is correct |
35 | Correct | 1 ms | 2396 KB | Output is correct |
36 | Correct | 1 ms | 2392 KB | Output is correct |
37 | Correct | 1 ms | 2396 KB | Output is correct |
38 | Correct | 1 ms | 2396 KB | Output is correct |
39 | Correct | 1 ms | 2396 KB | Output is correct |
40 | Correct | 1 ms | 2396 KB | Output is correct |
41 | Correct | 0 ms | 2396 KB | Output is correct |
42 | Correct | 0 ms | 2396 KB | Output is correct |
43 | Correct | 1 ms | 2396 KB | Output is correct |
44 | Correct | 1 ms | 2396 KB | Output is correct |
45 | Correct | 1 ms | 2396 KB | Output is correct |
46 | Correct | 1 ms | 2396 KB | Output is correct |
47 | Correct | 1 ms | 2396 KB | Output is correct |
48 | Correct | 1 ms | 2396 KB | Output is correct |
49 | Correct | 1 ms | 2396 KB | Output is correct |
50 | Correct | 1 ms | 2396 KB | Output is correct |
51 | Correct | 1 ms | 2392 KB | Output is correct |
52 | Correct | 1 ms | 2396 KB | Output is correct |
53 | Correct | 1 ms | 2396 KB | Output is correct |
54 | Correct | 1 ms | 2396 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 112 ms | 36556 KB | Output is correct |
2 | Correct | 105 ms | 36436 KB | Output is correct |
3 | Correct | 103 ms | 36496 KB | Output is correct |
4 | Correct | 113 ms | 36408 KB | Output is correct |
5 | Correct | 107 ms | 36392 KB | Output is correct |
6 | Correct | 77 ms | 35592 KB | Output is correct |
7 | Correct | 105 ms | 36508 KB | Output is correct |
8 | Correct | 68 ms | 34132 KB | Output is correct |
9 | Correct | 104 ms | 35048 KB | Output is correct |
10 | Correct | 97 ms | 35252 KB | Output is correct |
11 | Correct | 65 ms | 32080 KB | Output is correct |
12 | Correct | 0 ms | 2480 KB | Output is correct |
13 | Correct | 0 ms | 2396 KB | Output is correct |
14 | Correct | 0 ms | 2396 KB | Output is correct |
15 | Correct | 1 ms | 2396 KB | Output is correct |
16 | Correct | 1 ms | 2484 KB | Output is correct |
17 | Correct | 0 ms | 2396 KB | Output is correct |
18 | Correct | 0 ms | 2396 KB | Output is correct |
19 | Correct | 0 ms | 2392 KB | Output is correct |
20 | Correct | 1 ms | 2480 KB | Output is correct |
21 | Correct | 0 ms | 2396 KB | Output is correct |
22 | Correct | 0 ms | 2396 KB | Output is correct |
23 | Correct | 1 ms | 2396 KB | Output is correct |
24 | Correct | 1 ms | 2392 KB | Output is correct |
25 | Correct | 0 ms | 2396 KB | Output is correct |
26 | Correct | 1 ms | 2396 KB | Output is correct |
27 | Correct | 1 ms | 2396 KB | Output is correct |
28 | Correct | 1 ms | 2396 KB | Output is correct |
29 | Correct | 0 ms | 2396 KB | Output is correct |
30 | Correct | 1 ms | 2396 KB | Output is correct |
31 | Correct | 1 ms | 2396 KB | Output is correct |
32 | Correct | 1 ms | 2396 KB | Output is correct |
33 | Correct | 1 ms | 2396 KB | Output is correct |
34 | Correct | 0 ms | 2396 KB | Output is correct |
35 | Correct | 0 ms | 2472 KB | Output is correct |
36 | Correct | 1 ms | 2396 KB | Output is correct |
37 | Correct | 1 ms | 2396 KB | Output is correct |
38 | Correct | 0 ms | 2396 KB | Output is correct |
39 | Correct | 1 ms | 2396 KB | Output is correct |
40 | Correct | 0 ms | 2396 KB | Output is correct |
41 | Correct | 1 ms | 2396 KB | Output is correct |
42 | Correct | 1 ms | 2396 KB | Output is correct |
43 | Correct | 1 ms | 2392 KB | Output is correct |
44 | Correct | 1 ms | 2392 KB | Output is correct |
45 | Correct | 1 ms | 2396 KB | Output is correct |
46 | Correct | 1 ms | 2396 KB | Output is correct |
47 | Correct | 0 ms | 2396 KB | Output is correct |
48 | Correct | 1 ms | 2392 KB | Output is correct |
49 | Correct | 1 ms | 2396 KB | Output is correct |
50 | Correct | 0 ms | 2396 KB | Output is correct |
51 | Correct | 1 ms | 2396 KB | Output is correct |
52 | Correct | 0 ms | 2396 KB | Output is correct |
53 | Correct | 1 ms | 2396 KB | Output is correct |
54 | Correct | 0 ms | 2396 KB | Output is correct |