제출 #105655

#제출 시각아이디문제언어결과실행 시간메모리
105655sofhiasouza세 명의 친구들 (BOI14_friends)C++14
0 / 100
1082 ms10336 KiB
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
int main()
{
	int n, cont = -1, flag = 0, anteind = -1;
	vector < int > vet;
	cin >> n;
	string s, s11 = "", s12 = "",s21 = "", s22 = "", s112 = "", s212 = "";
	cin >> s;
	if(n%2 == 0) flag = 0;
	else 
	{
		for(int i = n-1 ; i >= 0 ; i--)
		{
			if(i <= n/2) s11.pb(s[i]);
			else s21.pb(s[i]);
			if(i < n/2) s112.pb(s[i]);
			else s212.pb(s[i]);
		}
		while(s11.size())
		{
			char k = s11[s11.size()-1];
			s11.pop_back();
			if(s11 == s21 and s12 == s22)
			{
				if(anteind == -1) 
				{
					anteind = (n/2 - s11.size());
					flag = 1;
				}
				else if(anteind == (n/2 - s11.size()) or s[(n/2 - s11.size())] == s[anteind]) flag = 2;
			}
			if(!s11.size()) continue;
			s12.pb(k);
			char k1 = s21[s21.size()-1];
			s21.pop_back();
			s22.pb(k1);
		}
 
		s11 = s112, s12 = "",s21 = s212, s22 = "";
		while(s21.size())
		{
			char k = s21[s21.size()-1];
			s21.pop_back();
			if(s11 == s21 and s12 == s22)
			{
				if(anteind == -1) 
				{
					anteind = (n - 1 - s21.size());
					flag = 1;
				}
				else if(anteind == (n - 1 - s21.size()) or s[(n - 1 - s21.size())] == s[anteind]) flag = 2;
			}
			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 if(flag == 1)
	{
		for(int j = 0 ; j < n/2 ; j++)
		{
			if(j != anteind) cout << s[j];
		}
		if(anteind < n/2) cout << s[n/2];
		cout << endl;
		}
		else cout << "NOT UNIQUE\n";
	}

컴파일 시 표준 에러 (stderr) 메시지

friends.cpp: In function 'int main()':
friends.cpp:32:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     else if(anteind == (n/2 - s11.size()) or s[(n/2 - s11.size())] == s[anteind]) flag = 2;
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
friends.cpp:53:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     else if(anteind == (n - 1 - s21.size()) or s[(n - 1 - s21.size())] == s[anteind]) flag = 2;
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
friends.cpp:6:9: warning: unused variable 'cont' [-Wunused-variable]
  int n, cont = -1, flag = 0, anteind = -1;
         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...