#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define MASK(i) (1LL << (i))
const int inf = 1e18;
const int MAXN = 5e4 + 4;;
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
string s;
cin >> s;
int cost = 0;
int cnt = 0;
set<pair<int, int>> st;
int i = -1;
for (char &c : s)
{
i++;
if (c == '(') cnt++;
else
{
cnt--;
if (c == '?')
{
int a, b;
cin >> a >> b;
cost += b;
c = ')';
st.insert({a - b, i});
}
if (cnt < 0)
{
if (st.empty())
{
cout << -1;
return 0;
}
cnt += 2;
cost += st.begin()->first;
s[st.begin()->second] = '(';
st.erase(st.begin());
}
}
}
if (cnt) cout << -1;
else cout << cost << '\n' << s;
return 0;
}
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |
387. First Unique Character in a String | 383. Ransom Note |
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |
733. Flood Fill | 206. Reverse Linked List |
83. Remove Duplicates from Sorted List | 116. Populating Next Right Pointers in Each Node |