Submission #203104

# Submission time Handle Problem Language Result Execution time Memory
203104 2020-02-19T11:29:33 Z Fasho Three Friends (BOI14_friends) C++14
100 / 100
52 ms 5364 KB
#include <bits/stdc++.h>
#define N 2000005
#define ll long long int 	
#define MP make_pair
#define pb push_back
#define ppb pop_back
#define sp " "
#define endl "\n"
#define fi first
#define se second
#define ii pair<int,int>
#define lli pair<ll,ll>
#define fast cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false)
#define fast2 freopen ("in.txt","r",stdin);freopen ("out.txt","w",stdout);
#define mod 1000000007
#define fs(x,y) for(ll i=1;i<=y;i++) cin>>x[i]
#define fo(i,x,y) for(ll i=x;i<=y;i++)
#define INF 1000000000005
#define ull unsigned long long int
using namespace std;

ll n,m,ar[N],sum,t,cnt[N];

char s[N];

int main()
{
	fast;
	cin>>n;
	cin>>s+1;
	// return cout<<"NOT UNIQUE",0;
	if(n%2==0)
		return cout<<"NOT POSSIBLE",0;
	for(int i=1;i<=n;i++)
		cnt[s[i]-'A'+1]++;
	int flag=0;
	for(int i=1;i<=26;i++)
		flag+=cnt[i]%2;
	
	if(flag!=1)
		return cout<<"NOT POSSIBLE",0;
	fo(i,1,26)
		if(cnt[i]%2==1)
			flag=i;
	int tutmac=cnt[flag];
	fo(i,1,26)
		cnt[i]=0;
	int tut=0;
	fo(i,1,n/2+1)
	{
		cnt[s[i]-'A'+1]++;
	}
	// cout<<"SA"<<endl;
	if(cnt[flag]>tutmac/2)
	{
		ll fail=0;
		for(int i=1;i<=n/2+1;i++)
		{
			if(s[i]!=s[i+n/2+1-fail])
				fail++;
		}
		// cout<<"HELLO"<<sp<<fail<<endl;
		if(fail!=1)
			return cout<<"NOT POSSIBLE",0;
		if(s[1]==s[n] && s[1]==s[n/2+1] && cnt[flag]!=n/2+1)
			return cout<<"NOT UNIQUE",0;
		for(int i=n/2+2;i<=n;i++)
			cout<<s[i];
		return 0; 
	}

	ll fail=0;
	for(int i=1;i<=n/2+1;i++)
	{
		if(s[i-fail]!=s[i+n/2])
			fail++;
	}
	if(fail!=1)
		return cout<<"NOT POSSIBLE",0;
	if(s[1]==s[n] && s[1]==s[n/2+1])
		return cout<<"NOT UNIQUE",0;
	for(int i=1;i<=n/2;i++)
		cout<<s[i];
	return 0; 
}



/*     cd onedrive\desktop\kod
cls

Sinav:21-22 aralik
Aciklama: Muhtemelen 25 aralik
*/

Compilation message

friends.cpp: In function 'int main()':
friends.cpp:30:8: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  cin>>s+1;
       ~^~
friends.cpp:48:6: warning: unused variable 'tut' [-Wunused-variable]
  int tut=0;
      ^~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 508 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 5 ms 376 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 5 ms 380 KB Output is correct
14 Correct 5 ms 376 KB Output is correct
15 Correct 5 ms 504 KB Output is correct
16 Correct 5 ms 376 KB Output is correct
17 Correct 5 ms 376 KB Output is correct
18 Correct 5 ms 376 KB Output is correct
19 Correct 5 ms 376 KB Output is correct
20 Correct 5 ms 376 KB Output is correct
21 Correct 5 ms 376 KB Output is correct
22 Correct 5 ms 380 KB Output is correct
23 Correct 5 ms 376 KB Output is correct
24 Correct 5 ms 376 KB Output is correct
25 Correct 5 ms 376 KB Output is correct
26 Correct 5 ms 376 KB Output is correct
27 Correct 5 ms 376 KB Output is correct
28 Correct 5 ms 376 KB Output is correct
29 Correct 5 ms 376 KB Output is correct
30 Correct 5 ms 376 KB Output is correct
31 Correct 5 ms 376 KB Output is correct
32 Correct 5 ms 376 KB Output is correct
33 Correct 5 ms 376 KB Output is correct
34 Correct 5 ms 248 KB Output is correct
35 Correct 5 ms 380 KB Output is correct
36 Correct 5 ms 376 KB Output is correct
37 Correct 5 ms 376 KB Output is correct
38 Correct 5 ms 376 KB Output is correct
39 Correct 5 ms 376 KB Output is correct
40 Correct 5 ms 376 KB Output is correct
41 Correct 5 ms 376 KB Output is correct
42 Correct 5 ms 376 KB Output is correct
43 Correct 5 ms 376 KB Output is correct
44 Correct 5 ms 376 KB Output is correct
45 Correct 5 ms 376 KB Output is correct
46 Correct 5 ms 376 KB Output is correct
47 Correct 5 ms 376 KB Output is correct
48 Correct 5 ms 376 KB Output is correct
49 Correct 5 ms 376 KB Output is correct
50 Correct 5 ms 376 KB Output is correct
51 Correct 5 ms 376 KB Output is correct
52 Correct 5 ms 376 KB Output is correct
53 Correct 5 ms 376 KB Output is correct
54 Correct 5 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 48 ms 3320 KB Output is correct
2 Correct 51 ms 5216 KB Output is correct
3 Correct 52 ms 5240 KB Output is correct
4 Correct 51 ms 5240 KB Output is correct
5 Correct 50 ms 5364 KB Output is correct
6 Correct 10 ms 4216 KB Output is correct
7 Correct 48 ms 5244 KB Output is correct
8 Correct 23 ms 3832 KB Output is correct
9 Correct 43 ms 4728 KB Output is correct
10 Correct 51 ms 4852 KB Output is correct
11 Correct 21 ms 3704 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 5 ms 376 KB Output is correct
14 Correct 5 ms 376 KB Output is correct
15 Correct 5 ms 376 KB Output is correct
16 Correct 5 ms 376 KB Output is correct
17 Correct 5 ms 376 KB Output is correct
18 Correct 5 ms 376 KB Output is correct
19 Correct 5 ms 376 KB Output is correct
20 Correct 5 ms 376 KB Output is correct
21 Correct 5 ms 376 KB Output is correct
22 Correct 5 ms 376 KB Output is correct
23 Correct 5 ms 376 KB Output is correct
24 Correct 5 ms 376 KB Output is correct
25 Correct 5 ms 376 KB Output is correct
26 Correct 5 ms 376 KB Output is correct
27 Correct 5 ms 376 KB Output is correct
28 Correct 5 ms 376 KB Output is correct
29 Correct 5 ms 376 KB Output is correct
30 Correct 5 ms 376 KB Output is correct
31 Correct 5 ms 376 KB Output is correct
32 Correct 5 ms 376 KB Output is correct
33 Correct 5 ms 376 KB Output is correct
34 Correct 5 ms 376 KB Output is correct
35 Correct 5 ms 376 KB Output is correct
36 Correct 5 ms 376 KB Output is correct
37 Correct 5 ms 376 KB Output is correct
38 Correct 5 ms 376 KB Output is correct
39 Correct 5 ms 376 KB Output is correct
40 Correct 5 ms 376 KB Output is correct
41 Correct 5 ms 376 KB Output is correct
42 Correct 5 ms 376 KB Output is correct
43 Correct 5 ms 376 KB Output is correct
44 Correct 5 ms 376 KB Output is correct
45 Correct 5 ms 376 KB Output is correct
46 Correct 5 ms 376 KB Output is correct
47 Correct 5 ms 376 KB Output is correct
48 Correct 6 ms 312 KB Output is correct
49 Correct 5 ms 376 KB Output is correct
50 Correct 6 ms 376 KB Output is correct
51 Correct 5 ms 376 KB Output is correct
52 Correct 5 ms 376 KB Output is correct
53 Correct 5 ms 376 KB Output is correct
54 Correct 5 ms 376 KB Output is correct