제출 #105633

#제출 시각아이디문제언어결과실행 시간메모리
105633sofhiasouza세 명의 친구들 (BOI14_friends)C++14
35 / 100
1084 ms10340 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;
	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)
			{
				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 = s112, s12 = "",s21 = s212, s22 = "";
		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())
		{
			if(i != 0 and (s[vet[i]] == s[vet[i]-1] or vet[i] == vet[i-1]))
			{
				i++;
				continue;
			}
			else if(i != 0)
			{
				flag = 2;
				break;
			}
			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";
	}
}

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

friends.cpp: In function 'int main()':
friends.cpp:59: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...