Submission #118588

# Submission time Handle Problem Language Result Execution time Memory
118588 2019-06-19T09:26:25 Z onjo0127 Three Friends (BOI14_friends) C++11
100 / 100
80 ms 11128 KB
#include <bits/stdc++.h>
using namespace std;

char S[2000009];
bool A[1000009], B[1000009], LA[1000009], LB[1000009], RA[1000009], RB[1000009];
int N, h;

bool chk(int p) {
	string s, t;
	for(int i=1, j=1; i<=N; i++) {
		if(i == p) continue;
		if(j > h) s += S[i];
		else t += S[i], ++j;
	}
	if(s == t) return 1;
	return 0;
}

void putans(int p) {
	for(int i=1, j=1; i<=N; i++) {
		if(p != i && j <= h) {
			printf("%c", S[i]);
			++j;
		}
	}
	exit(0);
}

int main() {
	bool fl = 1;
	scanf("%d %s", &N, S+1);
	if(N%2 == 0) return !printf("NOT POSSIBLE");
	h = N/2;
	for(int i=1; i<=N; i++) if(S[i] != S[1]) fl = 0;
	if(fl) putans(1);
	for(int i=1; i<=h+1; i++) A[i] = (S[i] == S[i+h]), B[i] = (S[i] == S[i+h+1]);
	LA[0] = LB[0] = RA[h+2] = RB[h+1] = 1;
	for(int i=1; i<=h+1; i++) LA[i] = LA[i-1] & A[i], LB[i] = LB[i-1] & B[i];
	for(int i=h+1; i>=1; i--) RA[i] = RA[i+1] & A[i], RB[i-1] = RB[i] & B[i-1];
	int c = 0;
	vector<int> p;
	for(int i=1; i<=h+1; i++) {
		if(LB[i-1] && RA[i+1] && i<=h) ++c, p.push_back(i);
		if(LA[i-1] && RB[i]) ++c, p.push_back(i + h);
	}
	sort(p.begin(), p.end());
	if(c >= 2 && p[0] == 1 && p.back() == N) puts("NOT UNIQUE");
	else if(c == 0) puts("NOT POSSIBLE");
	else putans(p[0]);
	return 0;
}

Compilation message

friends.cpp: In function 'int main()':
friends.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %s", &N, S+1);
  ~~~~~^~~~~~~~~~~~~~~~~~
# 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 3 ms 512 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 10 ms 356 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 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 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 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 384 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 2 ms 384 KB Output is correct
27 Correct 2 ms 384 KB Output is correct
28 Correct 16 ms 384 KB Output is correct
29 Correct 2 ms 384 KB Output is correct
30 Correct 2 ms 384 KB Output is correct
31 Correct 2 ms 384 KB Output is correct
32 Correct 2 ms 384 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 384 KB Output is correct
36 Correct 2 ms 384 KB Output is correct
37 Correct 2 ms 384 KB Output is correct
38 Correct 2 ms 384 KB Output is correct
39 Correct 2 ms 384 KB Output is correct
40 Correct 2 ms 384 KB Output is correct
41 Correct 2 ms 356 KB Output is correct
42 Correct 2 ms 384 KB Output is correct
43 Correct 2 ms 384 KB Output is correct
44 Correct 2 ms 384 KB Output is correct
45 Correct 2 ms 384 KB Output is correct
46 Correct 2 ms 384 KB Output is correct
47 Correct 2 ms 384 KB Output is correct
48 Correct 2 ms 384 KB Output is correct
49 Correct 2 ms 384 KB Output is correct
50 Correct 2 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 384 KB Output is correct
54 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 62 ms 11080 KB Output is correct
2 Correct 80 ms 11048 KB Output is correct
3 Correct 62 ms 11128 KB Output is correct
4 Correct 62 ms 11088 KB Output is correct
5 Correct 60 ms 11000 KB Output is correct
6 Correct 10 ms 4224 KB Output is correct
7 Correct 51 ms 5240 KB Output is correct
8 Correct 22 ms 9216 KB Output is correct
9 Correct 58 ms 10008 KB Output is correct
10 Correct 57 ms 9976 KB Output is correct
11 Correct 20 ms 8448 KB Output is correct
12 Correct 2 ms 384 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 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 384 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 384 KB Output is correct
26 Correct 2 ms 384 KB Output is correct
27 Correct 2 ms 384 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 384 KB Output is correct
31 Correct 2 ms 384 KB Output is correct
32 Correct 2 ms 384 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 384 KB Output is correct
36 Correct 2 ms 384 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 384 KB Output is correct
40 Correct 2 ms 384 KB Output is correct
41 Correct 2 ms 384 KB Output is correct
42 Correct 1 ms 384 KB Output is correct
43 Correct 2 ms 384 KB Output is correct
44 Correct 2 ms 384 KB Output is correct
45 Correct 2 ms 384 KB Output is correct
46 Correct 2 ms 384 KB Output is correct
47 Correct 2 ms 384 KB Output is correct
48 Correct 2 ms 384 KB Output is correct
49 Correct 3 ms 384 KB Output is correct
50 Correct 2 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 384 KB Output is correct
54 Correct 2 ms 384 KB Output is correct