codeforces 3D (非原创)
阅读原文时间:2023年07月10日阅读:1

D. Least Cost Bracket Sequence

time limit per test

1 second

memory limit per test

64 megabytes

input

standard input

output

standard output

This is yet another problem on regular bracket sequences.

A bracket sequence is called regular, if by inserting "+" and "1" into it we get a correct mathematical expression. For example, sequences "(())()", "()" and "(()(()))" are regular, while ")(", "(()" and "(()))(" are not. You have a pattern of a bracket sequence that consists of characters "(", ")" and "?". You have to replace each character "?" with a bracket so, that you get a regular bracket sequence.

For each character "?" the cost of its replacement with "(" and ")" is given. Among all the possible variants your should choose the cheapest.

Input

The first line contains a non-empty pattern of even length, consisting of characters "(", ")" and "?". Its length doesn't exceed 5·104. Then there follow m lines, where m is the number of characters "?" in the pattern. Each line contains two integer numbers a__i and b__i(1 ≤ a__i,  b__i ≤ 106), where a__i is the cost of replacing the i-th character "?" with an opening bracket, and b__i — with a closing one.

Output

Print the cost of the optimal regular bracket sequence in the first line, and the required sequence in the second.

Print -1, if there is no answer. If the answer is not unique, print any of them.

Examples

input

(??)
1 2
2 8

output

4
()()

这题的思路我没想出来,又是看了题解才会的。。

此题思路:http://blog.csdn.net/baidu_29410909/article/details/50967218

ac代码:

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
string s;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
priority_queue >q;
cin>>s;
ll cnt=0,ans=0,m=0,x,y;
for(int i=0;i>x>>y;
ans+=y;
q.push(make_pair(y-x,i));
--cnt;
m++;
}
pair t;
if(cnt<0) {
if(q.empty()) break;
t=q.top();
q.pop();
ans-=t.first;
s[t.second]='(';
cnt+=2;
}
}
if(cnt!=0) cout<<-1<<endl;
else {
cout<<ans<<endl;
cout<<s<<endl;
}
return 0;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章