Submission #90637

#TimeUsernameProblemLanguageResultExecution timeMemory
90637jangwonyoungMatch (CEOI16_match)C++14
10 / 100
2 ms500 KiB
#include<iostream>
#include<stack>
#include<set>
using namespace std;
string s,b;
int n;
set<int>st[226];
stack<int>cut;
int main(){
	ios::sync_with_stdio(false);
	cin >> s;
	b=s;
	n=s.size();
	for(int i=0; i<n ;i++) st[s[i]].insert(i);
	cut.push(n);
	for(int i=0; i<n ;i++){
		if(!cut.empty() && i==cut.top()){
			b[i]=')';
			cut.pop();
			continue;
		}
		st[s[i]].erase(i);
		b[i]='(';
		auto it=st[s[i]].upper_bound(cut.top());
		if(it==st[s[i]].begin()){
			cout << "-1\n";
			return 0;
		}
		--it;
		st[s[i]].erase(it);
		cut.push(*it);
	}
	cout << b << '\n';
}

Compilation message (stderr)

match.cpp: In function 'int main()':
match.cpp:14:32: warning: array subscript has type 'char' [-Wchar-subscripts]
  for(int i=0; i<n ;i++) st[s[i]].insert(i);
                                ^
match.cpp:22:10: warning: array subscript has type 'char' [-Wchar-subscripts]
   st[s[i]].erase(i);
          ^
match.cpp:24:18: warning: array subscript has type 'char' [-Wchar-subscripts]
   auto it=st[s[i]].upper_bound(cut.top());
                  ^
match.cpp:25:17: warning: array subscript has type 'char' [-Wchar-subscripts]
   if(it==st[s[i]].begin()){
                 ^
match.cpp:30:10: warning: array subscript has type 'char' [-Wchar-subscripts]
   st[s[i]].erase(it);
          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...