Submission #657157

# Submission time Handle Problem Language Result Execution time Memory
657157 2022-11-08T23:54:19 Z Juan Three Friends (BOI14_friends) C++17
100 / 100
128 ms 7488 KB
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e6 + 5;

char v[maxn];

int main(){
	int n; cin >> n;
	for(int i = 0; i < n; i++) cin >> v[i];

	int ok = 0, diffcnt = 0;
	string ans = "", left="", right="";
	for(int i = 0; i < n/2; i++) left+=v[i];
	for(int i = n/2; i < n-1; i++) right+=v[i];
	for(int i = 0; i < n/2; i++) if(left[i]!=right[i]) diffcnt++;
	if(!diffcnt) ok++, ans = right;

	for(int i = n-2; i >= n/2; i--){
		int op;
		if(right[i-n/2] == left[i-n/2]) op=-1; else op = -2;
		right[i-n/2] = v[i+1];
		if(right[i-n/2] == left[i-n/2]) op+=1; else op += 2;
		diffcnt+=op;
		if(!diffcnt){
			ok++;
			if(ok>=2 && op) {cout << "NOT UNIQUE\n"; return 0;}
			if(ok==1) ans=right;
		}
	}
	for(int i = n/2-1; i >= 0; i--){
		int op;
		if(left[i] == right[i]) op=-1; else op = -2;
		left[i] = v[i+1];
		if(left[i] == right[i]) op+=1; else op += 2;
		diffcnt+=op;
		if(!diffcnt){
			ok++;
			if(ok>=2 && op) {cout << "NOT UNIQUE\n"; return 0;}
			if(ok==1) ans=left;
		}
	}

	if(ok==0) cout << "NOT POSSIBLE\n";
	else cout << ans << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Correct 0 ms 212 KB Output is correct
29 Correct 1 ms 212 KB Output is correct
30 Correct 0 ms 212 KB Output is correct
31 Correct 1 ms 212 KB Output is correct
32 Correct 1 ms 212 KB Output is correct
33 Correct 0 ms 212 KB Output is correct
34 Correct 0 ms 212 KB Output is correct
35 Correct 0 ms 212 KB Output is correct
36 Correct 0 ms 212 KB Output is correct
37 Correct 0 ms 212 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 1 ms 212 KB Output is correct
40 Correct 0 ms 212 KB Output is correct
41 Correct 0 ms 212 KB Output is correct
42 Correct 0 ms 212 KB Output is correct
43 Correct 1 ms 212 KB Output is correct
44 Correct 0 ms 212 KB Output is correct
45 Correct 1 ms 212 KB Output is correct
46 Correct 1 ms 212 KB Output is correct
47 Correct 1 ms 212 KB Output is correct
48 Correct 1 ms 212 KB Output is correct
49 Correct 1 ms 212 KB Output is correct
50 Correct 0 ms 212 KB Output is correct
51 Correct 1 ms 212 KB Output is correct
52 Correct 0 ms 212 KB Output is correct
53 Correct 0 ms 212 KB Output is correct
54 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 125 ms 6300 KB Output is correct
2 Correct 128 ms 6268 KB Output is correct
3 Correct 126 ms 6312 KB Output is correct
4 Correct 128 ms 6280 KB Output is correct
5 Correct 128 ms 6308 KB Output is correct
6 Correct 125 ms 6020 KB Output is correct
7 Correct 126 ms 6232 KB Output is correct
8 Correct 112 ms 6468 KB Output is correct
9 Correct 120 ms 7488 KB Output is correct
10 Correct 115 ms 7428 KB Output is correct
11 Correct 106 ms 5804 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 312 KB Output is correct
14 Correct 0 ms 304 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 0 ms 312 KB Output is correct
25 Correct 1 ms 212 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 0 ms 212 KB Output is correct
28 Correct 1 ms 212 KB Output is correct
29 Correct 1 ms 212 KB Output is correct
30 Correct 1 ms 212 KB Output is correct
31 Correct 0 ms 308 KB Output is correct
32 Correct 1 ms 212 KB Output is correct
33 Correct 1 ms 212 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 1 ms 212 KB Output is correct
36 Correct 1 ms 212 KB Output is correct
37 Correct 1 ms 212 KB Output is correct
38 Correct 0 ms 212 KB Output is correct
39 Correct 0 ms 212 KB Output is correct
40 Correct 0 ms 212 KB Output is correct
41 Correct 1 ms 212 KB Output is correct
42 Correct 1 ms 212 KB Output is correct
43 Correct 1 ms 212 KB Output is correct
44 Correct 1 ms 212 KB Output is correct
45 Correct 1 ms 212 KB Output is correct
46 Correct 1 ms 212 KB Output is correct
47 Correct 1 ms 340 KB Output is correct
48 Correct 0 ms 212 KB Output is correct
49 Correct 0 ms 212 KB Output is correct
50 Correct 1 ms 212 KB Output is correct
51 Correct 0 ms 304 KB Output is correct
52 Correct 1 ms 212 KB Output is correct
53 Correct 1 ms 212 KB Output is correct
54 Correct 0 ms 212 KB Output is correct