#include <cstdio>
#include <cstdlib>
using namespace std;
#define MAX_N 2000010
#define NO 0
#define INITIAL 1
#define FINAL 2
#define MULTIPLE 3
int N;
char seq[MAX_N];
void readInput()
{
scanf ("%d\n", &N);
for (int i = 0; i < N; ++i)
scanf ("%c", &seq[i]);
}
void writeOutput(int ans)
{
if (ans == NO) {
printf ("NOT POSSIBLE\n");
}
else if (ans == INITIAL) {
for (int i = 0; i < N/2; ++i)
printf ("%c", seq[i]);
printf ("\n");
}
else if (ans == FINAL) {
for (int i = 0; i < N/2; ++i)
printf ("%c", seq[N/2+1+i]);
printf ("\n");
}
else if (ans == MULTIPLE) {
printf ("NOT UNIQUE\n");
}
exit (0);
}
bool tryInitial()
{
int extra = 0;
for (int i = 0; i < N/2; ++i) {
while (seq[i] != seq[N/2+i+extra]) {
++extra;
if (extra > 1)
return false;
}
}
return true;
}
bool tryFinal()
{
int extra = 0;
for (int i = 0; i < N/2; ++i) {
while (seq[i+extra] != seq[N/2+i+1]) {
++extra;
if (extra > 1)
return false;
}
}
return true;
}
bool coincides()
{
for (int i = 0; i < N/2; ++i) {
if (seq[i] != seq[N/2+1+i])
return false;
}
return true;
}
int main()
{
readInput();
if (N%2 == 0)
writeOutput (NO);
if (tryInitial()) {
if (tryFinal() && !coincides())
writeOutput (MULTIPLE);
else
writeOutput (INITIAL);
}
else if (tryFinal())
writeOutput (FINAL);
else
writeOutput (NO);
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
3040 KB |
Output is correct |
2 |
Correct |
0 ms |
3040 KB |
Output is correct |
3 |
Correct |
0 ms |
3040 KB |
Output is correct |
4 |
Correct |
0 ms |
3040 KB |
Output is correct |
5 |
Correct |
0 ms |
3040 KB |
Output is correct |
6 |
Correct |
0 ms |
3040 KB |
Output is correct |
7 |
Correct |
0 ms |
3040 KB |
Output is correct |
8 |
Correct |
0 ms |
3040 KB |
Output is correct |
9 |
Correct |
0 ms |
3040 KB |
Output is correct |
10 |
Correct |
0 ms |
3040 KB |
Output is correct |
11 |
Correct |
0 ms |
3040 KB |
Output is correct |
12 |
Correct |
0 ms |
3040 KB |
Output is correct |
13 |
Correct |
0 ms |
3040 KB |
Output is correct |
14 |
Correct |
0 ms |
3040 KB |
Output is correct |
15 |
Correct |
0 ms |
3040 KB |
Output is correct |
16 |
Correct |
0 ms |
3040 KB |
Output is correct |
17 |
Correct |
0 ms |
3040 KB |
Output is correct |
18 |
Correct |
0 ms |
3040 KB |
Output is correct |
19 |
Correct |
0 ms |
3040 KB |
Output is correct |
20 |
Correct |
0 ms |
3040 KB |
Output is correct |
21 |
Correct |
0 ms |
3040 KB |
Output is correct |
22 |
Correct |
0 ms |
3040 KB |
Output is correct |
23 |
Correct |
0 ms |
3040 KB |
Output is correct |
24 |
Correct |
0 ms |
3040 KB |
Output is correct |
25 |
Correct |
0 ms |
3040 KB |
Output is correct |
26 |
Correct |
0 ms |
3040 KB |
Output is correct |
27 |
Correct |
0 ms |
3040 KB |
Output is correct |
28 |
Correct |
0 ms |
3040 KB |
Output is correct |
29 |
Correct |
0 ms |
3040 KB |
Output is correct |
30 |
Correct |
0 ms |
3040 KB |
Output is correct |
31 |
Correct |
0 ms |
3040 KB |
Output is correct |
32 |
Correct |
0 ms |
3040 KB |
Output is correct |
33 |
Correct |
0 ms |
3040 KB |
Output is correct |
34 |
Correct |
0 ms |
3040 KB |
Output is correct |
35 |
Correct |
0 ms |
3040 KB |
Output is correct |
36 |
Correct |
0 ms |
3040 KB |
Output is correct |
37 |
Correct |
0 ms |
3040 KB |
Output is correct |
38 |
Correct |
0 ms |
3040 KB |
Output is correct |
39 |
Correct |
0 ms |
3040 KB |
Output is correct |
40 |
Correct |
0 ms |
3040 KB |
Output is correct |
41 |
Correct |
0 ms |
3040 KB |
Output is correct |
42 |
Correct |
0 ms |
3040 KB |
Output is correct |
43 |
Correct |
0 ms |
3040 KB |
Output is correct |
44 |
Correct |
0 ms |
3040 KB |
Output is correct |
45 |
Correct |
0 ms |
3040 KB |
Output is correct |
46 |
Correct |
0 ms |
3040 KB |
Output is correct |
47 |
Correct |
0 ms |
3040 KB |
Output is correct |
48 |
Correct |
0 ms |
3040 KB |
Output is correct |
49 |
Correct |
0 ms |
3040 KB |
Output is correct |
50 |
Correct |
0 ms |
3040 KB |
Output is correct |
51 |
Correct |
0 ms |
3040 KB |
Output is correct |
52 |
Correct |
0 ms |
3040 KB |
Output is correct |
53 |
Correct |
0 ms |
3040 KB |
Output is correct |
54 |
Correct |
0 ms |
3040 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
116 ms |
3040 KB |
Output is correct |
2 |
Correct |
120 ms |
3040 KB |
Output is correct |
3 |
Correct |
112 ms |
3040 KB |
Output is correct |
4 |
Correct |
116 ms |
3040 KB |
Output is correct |
5 |
Correct |
112 ms |
3040 KB |
Output is correct |
6 |
Correct |
104 ms |
3040 KB |
Output is correct |
7 |
Correct |
116 ms |
3040 KB |
Output is correct |
8 |
Correct |
96 ms |
3040 KB |
Output is correct |
9 |
Correct |
104 ms |
3040 KB |
Output is correct |
10 |
Correct |
100 ms |
3040 KB |
Output is correct |
11 |
Correct |
84 ms |
3040 KB |
Output is correct |
12 |
Correct |
0 ms |
3040 KB |
Output is correct |
13 |
Correct |
0 ms |
3040 KB |
Output is correct |
14 |
Correct |
0 ms |
3040 KB |
Output is correct |
15 |
Correct |
0 ms |
3040 KB |
Output is correct |
16 |
Correct |
0 ms |
3040 KB |
Output is correct |
17 |
Correct |
0 ms |
3040 KB |
Output is correct |
18 |
Correct |
0 ms |
3040 KB |
Output is correct |
19 |
Correct |
0 ms |
3040 KB |
Output is correct |
20 |
Correct |
0 ms |
3040 KB |
Output is correct |
21 |
Correct |
0 ms |
3040 KB |
Output is correct |
22 |
Correct |
0 ms |
3040 KB |
Output is correct |
23 |
Correct |
0 ms |
3040 KB |
Output is correct |
24 |
Correct |
0 ms |
3040 KB |
Output is correct |
25 |
Correct |
0 ms |
3040 KB |
Output is correct |
26 |
Correct |
0 ms |
3040 KB |
Output is correct |
27 |
Correct |
0 ms |
3040 KB |
Output is correct |
28 |
Correct |
0 ms |
3040 KB |
Output is correct |
29 |
Correct |
0 ms |
3040 KB |
Output is correct |
30 |
Correct |
0 ms |
3040 KB |
Output is correct |
31 |
Correct |
0 ms |
3040 KB |
Output is correct |
32 |
Correct |
0 ms |
3040 KB |
Output is correct |
33 |
Correct |
0 ms |
3040 KB |
Output is correct |
34 |
Correct |
0 ms |
3040 KB |
Output is correct |
35 |
Correct |
0 ms |
3040 KB |
Output is correct |
36 |
Correct |
0 ms |
3040 KB |
Output is correct |
37 |
Correct |
0 ms |
3040 KB |
Output is correct |
38 |
Correct |
0 ms |
3040 KB |
Output is correct |
39 |
Correct |
0 ms |
3040 KB |
Output is correct |
40 |
Correct |
0 ms |
3040 KB |
Output is correct |
41 |
Correct |
0 ms |
3040 KB |
Output is correct |
42 |
Correct |
0 ms |
3040 KB |
Output is correct |
43 |
Correct |
0 ms |
3040 KB |
Output is correct |
44 |
Correct |
0 ms |
3040 KB |
Output is correct |
45 |
Correct |
0 ms |
3040 KB |
Output is correct |
46 |
Correct |
0 ms |
3040 KB |
Output is correct |
47 |
Correct |
0 ms |
3040 KB |
Output is correct |
48 |
Correct |
0 ms |
3040 KB |
Output is correct |
49 |
Correct |
0 ms |
3040 KB |
Output is correct |
50 |
Correct |
0 ms |
3040 KB |
Output is correct |
51 |
Correct |
0 ms |
3040 KB |
Output is correct |
52 |
Correct |
0 ms |
3040 KB |
Output is correct |
53 |
Correct |
0 ms |
3040 KB |
Output is correct |
54 |
Correct |
0 ms |
3040 KB |
Output is correct |