Submission #105604

#TimeUsernameProblemLanguageResultExecution timeMemory
105604sofhiasouza세 명의 친구들 (BOI14_friends)C++14
35 / 100
1073 ms6132 KiB
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
int main()
{
	int n, cont = -1, flag = 0;
	vector < int > vet;
	cin >> n;
	getchar();
	string s, s11 = "", s12 = "",s21 = "", s22 = "";
	cin >> s;
	if(n%2 == 0) flag = 0;
	else 
	{
		for(int i = 0 ; i < n ; i++)
		{
			if(i <= n/2) s11.pb(s[i]);
			else s21.pb(s[i]);
		}
		reverse(s11.begin(), s11.end());
		reverse(s21.begin(), s21.end());
		while(s11.size())
		{
			char k = s11[s11.size()-1];
			s11.pop_back();
			if(s11 == s21 and s12 == s22)
			{
				vet.pb((n/2 - s11.size()));
				flag = 1;
			}
			if(!s11.size()) continue;
			s12.pb(k);
			char k1 = s21[s21.size()-1];
			s21.pop_back();
			s22.pb(k1);
		}

		 s11 = "", s12 = "",s21 = "", s22 = "";
		for(int i = 0 ; i < n ; i++)
		{
			if(i < n/2) s11.pb(s[i]);
			else s21.pb(s[i]);
		}
		reverse(s11.begin(), s11.end());
		reverse(s21.begin(), s21.end());
		while(s21.size())
		{
			char k = s21[s21.size()-1];
			s21.pop_back();
			if(s11 == s21 and s12 == s22)
			{
				vet.pb((n - 1 - s21.size()));
				flag = 1;
			}
			if(!s21.size()) continue;
			s22.pb(k);
			char k1 = s11[s11.size()-1];
			s11.pop_back();
			s12.pb(k1);
		}
	}
	if(flag == 0) cout << "NOT POSSIBLE\n";
	else
	{
		int i = 0;
		string ante = "";
		while(i < vet.size())
		{
			string k = "";
			for(int j = 0 ; j < n/2 ; j++)
			{
				if(j != vet[i]) k.pb(s[j]);
			}
			if(vet[i] < n/2) k.pb(s[n/2]);
			if(i == 0) ante = k, flag = 1;
			else if(k == ante) flag = 1, cont = i;
			else
			{
				flag = 2;
				break;
			}
			i++;
		}
		if(flag == 1) cout << ante << endl;
		else cout << "NOT UNIQUE\n";
	}
}

Compilation message (stderr)

friends.cpp: In function 'int main()':
friends.cpp:67:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(i < vet.size())
         ~~^~~~~~~~~~~~
friends.cpp:6:9: warning: variable 'cont' set but not used [-Wunused-but-set-variable]
  int n, cont = -1, flag = 0;
         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...