Submission #105695

# Submission time Handle Problem Language Result Execution time Memory
105695 2019-04-14T00:58:44 Z sams Three Friends (BOI14_friends) C++14
100 / 100
96 ms 9192 KB
#include <bits/stdc++.h>

using namespace std;

int n;
string u, a, b, s1, s2;

int main()
{
	cin >> n >> u;

	if(n%2 == 0)
	{
		cout << "NOT POSSIBLE\n";
		return 0;
	}
	
	int mid = (n-1)/2, p1 = -1, p2 = -1;

	bool ok1 = true, ok2 = true;

	for(int i = 0 ; i < mid ; ++i) a.push_back(u[i]);
	for(int i = mid ; i < n ; ++i) b.push_back(u[i]);
	
	for(int i = 0, j = 0; i < mid ; ++j, ++i)
	{
		if(a[i] != b[j]) 
		{	if(p1 == -1 && a[i] == b[++j]) p1 = j;
			else
			{	
				ok1 = false;
				break;
			}
		}
		s1 += a[i];
	}

	a.clear(); b.clear();

	for(int i = 0 ; i <= mid ; ++i) b.push_back(u[i]);
	for(int i = mid + 1 ; i < n ; ++i) a.push_back(u[i]);

	for(int i = 0, j = 0; i < mid ; ++j, ++i)
	{
		if(a[i] != b[j]) 
		{	if(p2 == -1 && a[i] == b[++j]) p2 = j;
			else
			{
				ok2 = false;
				break;
			}
		}
		s2 += a[i];
	}

	if(!ok1 && !ok2) cout << "NOT POSSIBLE\n";
	else
	{
		if(ok1 && ok2 && s1 != s2) cout << "NOT UNIQUE\n";
		else if(ok1) cout << s1 << "\n";
		else cout << s2 << "\n";
	}

	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 256 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 3 ms 384 KB Output is correct
10 Correct 2 ms 256 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 256 KB Output is correct
14 Correct 3 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 256 KB Output is correct
17 Correct 2 ms 256 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 256 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 256 KB Output is correct
22 Correct 2 ms 384 KB Output is correct
23 Correct 2 ms 384 KB Output is correct
24 Correct 2 ms 384 KB Output is correct
25 Correct 2 ms 256 KB Output is correct
26 Correct 3 ms 256 KB Output is correct
27 Correct 2 ms 256 KB Output is correct
28 Correct 2 ms 256 KB Output is correct
29 Correct 2 ms 256 KB Output is correct
30 Correct 2 ms 384 KB Output is correct
31 Correct 1 ms 384 KB Output is correct
32 Correct 2 ms 256 KB Output is correct
33 Correct 2 ms 384 KB Output is correct
34 Correct 2 ms 384 KB Output is correct
35 Correct 2 ms 256 KB Output is correct
36 Correct 2 ms 256 KB Output is correct
37 Correct 2 ms 256 KB Output is correct
38 Correct 2 ms 384 KB Output is correct
39 Correct 2 ms 256 KB Output is correct
40 Correct 2 ms 256 KB Output is correct
41 Correct 2 ms 284 KB Output is correct
42 Correct 2 ms 384 KB Output is correct
43 Correct 3 ms 384 KB Output is correct
44 Correct 3 ms 384 KB Output is correct
45 Correct 2 ms 256 KB Output is correct
46 Correct 2 ms 384 KB Output is correct
47 Correct 3 ms 384 KB Output is correct
48 Correct 2 ms 256 KB Output is correct
49 Correct 2 ms 256 KB Output is correct
50 Correct 3 ms 384 KB Output is correct
51 Correct 2 ms 384 KB Output is correct
52 Correct 2 ms 384 KB Output is correct
53 Correct 2 ms 256 KB Output is correct
54 Correct 3 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 81 ms 9072 KB Output is correct
2 Correct 77 ms 9092 KB Output is correct
3 Correct 75 ms 9192 KB Output is correct
4 Correct 76 ms 9184 KB Output is correct
5 Correct 83 ms 9056 KB Output is correct
6 Correct 86 ms 4328 KB Output is correct
7 Correct 96 ms 9120 KB Output is correct
8 Correct 93 ms 6520 KB Output is correct
9 Correct 72 ms 7400 KB Output is correct
10 Correct 72 ms 6588 KB Output is correct
11 Correct 70 ms 4568 KB Output is correct
12 Correct 2 ms 256 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 2 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 256 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 3 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 256 KB Output is correct
22 Correct 2 ms 256 KB Output is correct
23 Correct 3 ms 384 KB Output is correct
24 Correct 2 ms 384 KB Output is correct
25 Correct 2 ms 256 KB Output is correct
26 Correct 2 ms 256 KB Output is correct
27 Correct 2 ms 256 KB Output is correct
28 Correct 2 ms 384 KB Output is correct
29 Correct 2 ms 384 KB Output is correct
30 Correct 2 ms 256 KB Output is correct
31 Correct 2 ms 384 KB Output is correct
32 Correct 2 ms 256 KB Output is correct
33 Correct 2 ms 256 KB Output is correct
34 Correct 3 ms 256 KB Output is correct
35 Correct 2 ms 256 KB Output is correct
36 Correct 2 ms 256 KB Output is correct
37 Correct 2 ms 256 KB Output is correct
38 Correct 2 ms 384 KB Output is correct
39 Correct 2 ms 256 KB Output is correct
40 Correct 3 ms 384 KB Output is correct
41 Correct 2 ms 256 KB Output is correct
42 Correct 4 ms 384 KB Output is correct
43 Correct 2 ms 384 KB Output is correct
44 Correct 2 ms 256 KB Output is correct
45 Correct 2 ms 256 KB Output is correct
46 Correct 2 ms 256 KB Output is correct
47 Correct 2 ms 256 KB Output is correct
48 Correct 2 ms 256 KB Output is correct
49 Correct 3 ms 384 KB Output is correct
50 Correct 2 ms 256 KB Output is correct
51 Correct 2 ms 256 KB Output is correct
52 Correct 2 ms 256 KB Output is correct
53 Correct 2 ms 256 KB Output is correct
54 Correct 2 ms 256 KB Output is correct