Submission #956532

# Submission time Handle Problem Language Result Execution time Memory
956532 2024-04-02T06:47:38 Z ezzzay Three Friends (BOI14_friends) C++14
100 / 100
38 ms 6224 KB
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define int long long
#define pb push_back
#define ff first
#define ss second
const int N=1e5+5;
vector<int>ans;
 void fun(int n){
     if(n%2==0){
		cout<<"NOT POSSIBLE";
		return ;
	}
	string s;
	set<string>st;
	cin>>s;
	for(int i=0;i<n;i++){
		string tmp;
		for(int j=0;j<n;j++){
			if(i==j)continue;
			tmp+=s[j];
		}
		if(tmp.substr(0,n/2)==tmp.substr(n/2,n/2)){
			st.insert(tmp.substr(0,n/2));
		}
	}
	if(st.size()>1){
		cout<<"NOT UNIQUE";
	}
	else if(st.size()==0){
		cout<<"NOT POSSIBLE";
	}
	else cout<< *st.begin();
 }
signed main(){
	int n;
	cin>>n;
	if(n<=2001){
	    fun(n);
	    return 0;
	}
	string s;
	set<char>st;
	cin>>s;
	if(n%2==0){
		cout<<"NOT POSSIBLE";
		return 0;
	}
	int l1=0;
	int r1=n/2+1;
	int cnt1=0;
	int u1=0;
	int e1=0;
	while(cnt1!=n/2){
	    if(s[l1]!=s[r1]){
	        l1++;
	        e1=1;
	        u1++;
	        if(u1==2){
	            e1=0;
	            break;
	        }
	    }
	    l1++;
	    r1++;
	    cnt1++;
	}
	int p1=1;
	if(u1==2 and e1==0){
	    p1=0;
	}
	
	reverse(s.begin(),s.end());
	
	int l2=0;
	int r2=n/2+1;
	int cnt2=0;
	int u2=0;
	int e2=0;
	while(cnt2!=n/2){
	    if(s[l2]!=s[r2]){
	        l2++;
	        e2=1;
	        u2++;
	        if(u2==2){
	            e2=0;
	            break;
	        }
	    }
	    l2++;
	    r2++;
	    cnt2++;
	}
	int p2=1;
	if(e1 and e2){
	    cout<<"NOT UNIQUE";
	    return 0;
	}
	
	
	
	
	if(u1==2 and u2==2){
	    cout<<"NOT POSSIBLE";
	    return 0;
	}
	
	
	reverse(s.begin(),s.end());
	if(p1){
	    cout<<s.substr(n/2+1,n/2);
	    return 0;
	}
	if(p2){
	    cout<<s.substr(0,n/2);
	    return 0;
	}
	
	
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Correct 0 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 0 ms 344 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 0 ms 348 KB Output is correct
32 Correct 0 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 1 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 1 ms 440 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
40 Correct 0 ms 348 KB Output is correct
41 Correct 1 ms 348 KB Output is correct
42 Correct 0 ms 348 KB Output is correct
43 Correct 0 ms 348 KB Output is correct
44 Correct 8 ms 452 KB Output is correct
45 Correct 8 ms 436 KB Output is correct
46 Correct 8 ms 348 KB Output is correct
47 Correct 8 ms 344 KB Output is correct
48 Correct 8 ms 348 KB Output is correct
49 Correct 0 ms 348 KB Output is correct
50 Correct 8 ms 348 KB Output is correct
51 Correct 6 ms 436 KB Output is correct
52 Correct 6 ms 348 KB Output is correct
53 Correct 7 ms 436 KB Output is correct
54 Correct 5 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 31 ms 6196 KB Output is correct
2 Correct 30 ms 5444 KB Output is correct
3 Correct 30 ms 5452 KB Output is correct
4 Correct 38 ms 5236 KB Output is correct
5 Correct 30 ms 6224 KB Output is correct
6 Correct 28 ms 5968 KB Output is correct
7 Correct 31 ms 5568 KB Output is correct
8 Correct 26 ms 2324 KB Output is correct
9 Correct 27 ms 3920 KB Output is correct
10 Correct 28 ms 3920 KB Output is correct
11 Correct 23 ms 2320 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 0 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 1 ms 348 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 0 ms 348 KB Output is correct
32 Correct 0 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 0 ms 348 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 0 ms 348 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
40 Correct 0 ms 348 KB Output is correct
41 Correct 1 ms 348 KB Output is correct
42 Correct 0 ms 432 KB Output is correct
43 Correct 0 ms 348 KB Output is correct
44 Correct 0 ms 348 KB Output is correct
45 Correct 1 ms 348 KB Output is correct
46 Correct 0 ms 348 KB Output is correct
47 Correct 0 ms 348 KB Output is correct
48 Correct 1 ms 348 KB Output is correct
49 Correct 0 ms 348 KB Output is correct
50 Correct 0 ms 348 KB Output is correct
51 Correct 0 ms 348 KB Output is correct
52 Correct 0 ms 348 KB Output is correct
53 Correct 0 ms 348 KB Output is correct
54 Correct 0 ms 348 KB Output is correct