Submission #608818

#TimeUsernameProblemLanguageResultExecution timeMemory
608818UncoolAnonMatch (CEOI16_match)C++14
10 / 100
0 ms212 KiB
#include <bits/stdc++.h> 
using namespace std; 
int ok=1; 
string answer,a;  
void solve(int l,int r){
	vector<int> occ(26); 
	int candidate=-1; 
	occ[a[l]-'a']++; 
	for(int i=l+1;i<=r;i++){
		occ[a[i]-'a']++; 
		bool yes=1; 
		for(int j=0;j<26;++j)yes&=(occ[j]%2==0);  
		if(yes&&a[i]==a[l]){
			candidate=i; 
		}
	}
	if(candidate==-1){
		ok=0; 
		return ; 
	}
	answer[l]='('; 
	answer[candidate]=')'; 
	if(l+1<=candidate-1) solve(l+1,candidate-1); 
	if( candidate+1<=r) solve(candidate+1,r); 
	return; 
}
int main(){
	cin>>a; 
	for(int i=0;i<a.size();++i) answer+='#'; 
	solve(0,a.size()-1); 
	if(!ok) cout<<-1; 
	else cout<<answer; 
}

Compilation message (stderr)

match.cpp: In function 'int main()':
match.cpp:29:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  for(int i=0;i<a.size();++i) answer+='#';
      |              ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...