Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define INF INT_MAX
- #define LINF LLONG_MAX
- #define forin(data) for(auto &i : data)
- #define debug(x) cerr << #x << " = " << x << endl;
- using ll = long long;
- using pi = pair<int, int>;
- using vi = vector<int>;
- using vii = vector<vi>;
- using vl = vector<ll>;
- void init(){
- #ifdef LOCAL
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- freopen("log.txt", "w", stderr);
- #else
- cin.tie(0); cout.tie(0);
- ios_base::sync_with_stdio(0);
- #endif
- }
- int toInt(char i){
- return (i - '0');
- }
- void append(string &str, int n, char c){
- for(int i = 0; i < n; i++){
- str += c;
- }
- cout << str << endl;
- }
- int main(){
- init()
- int tc;
- cin >> tc;
- for(int i = 1; i <= tc; i++){
- string str;
- cin >> str;
- string ans = "";
- if(str.size() == 1){
- append(ans, toInt(str[0]), '(');
- ans += str[0];
- append(ans, toInt(str[0]), ')');
- }else{
- int left, right, brac;
- left = right = brac = 0;
- for(int j = 0; j < str.size(); j++){
- if(j == 0){
- left = toInt(str[j]);
- right = toInt(str[j]) - toInt(str[j + 1]);
- }else if(j == str.size() - 1){
- left = toInt(str[j]) - toInt(str[j - 1]);
- if(left > 0){
- append(ans, left, '(');
- brac += left;
- }
- right = brac;
- ans += str[j];
- append(ans, right, ')');
- break;
- }else{
- left = toInt(str[j]) - toInt(str[j - 1]);
- right = toInt(str[j]) - toInt(str[j + 1]);
- }
- if(left > 0){
- append(ans, left, '(');
- brac += left;
- }
- ans += str[j];
- if(right >= 0){
- append(ans, right, ')');
- brac -= right;
- }
- }
- }
- cout << "Case #" << i << ": " << ans << endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment