Submission #52598772


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

const int N=5+(int)5e5;

int tot[N],l[N],r[N];
string s;

void print(int lb,int rb){
    if(tot[lb]&1){
        for(int i=rb-1;i>lb;i--){
            if(tot[i]){
                print(l[i],r[i]);
                i=l[i];
            }else{
                if(s[i]>='a'&&s[i]<='z')cout<<(char)(s[i]-'a'+'A');
                else cout<<(char)(s[i]-'A'+'a');
            }
        }
    }else{
        for(int i=lb+1;i<rb;i++){
            if(tot[i]){
                print(l[i],r[i]);
                i=r[i];
            }else{
                cout<<s[i];
            }
        }
    }
    tot[l[lb]]=tot[r[lb]]=0;
}

void solve(){
    cin>>s;
    int n=(int)s.length();
    stack<int> pos;
    for(int i=0;i<n;i++){
        if(s[i]=='('){
            pos.push(i);
            tot[i]=(int)pos.size();
        }
        else if(s[i]==')'){
            int o=pos.top();pos.pop();
            tot[i]=tot[o];
            l[i]=o;
            r[i]=i;
            l[o]=o;
            r[o]=i;
        }
    }
    for(int i=0;i<n;i++){
        if(tot[i]){
            print(l[i],r[i]);
            tot[l[i]]=0;
            tot[r[i]]=0;
            i=r[i];
        }else{
            cout<<s[i];
        }
    }
    cout<<'\n';
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int t=1;
    while(t--){
        solve();
    }
}

Submission Info

Submission Time
Task F - Transpose
User nichke
Language C++ 20 (gcc 12.2)
Score 550
Code Size 1453 Byte
Status AC
Exec Time 18 ms
Memory 33940 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 4
AC × 33
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 3372 KiB
sample_02.txt AC 1 ms 3500 KiB
sample_03.txt AC 1 ms 3436 KiB
sample_04.txt AC 1 ms 3636 KiB
test_01.txt AC 1 ms 3400 KiB
test_02.txt AC 1 ms 3496 KiB
test_03.txt AC 1 ms 3644 KiB
test_04.txt AC 15 ms 19224 KiB
test_05.txt AC 10 ms 10796 KiB
test_06.txt AC 14 ms 20784 KiB
test_07.txt AC 16 ms 18156 KiB
test_08.txt AC 15 ms 19744 KiB
test_09.txt AC 15 ms 19392 KiB
test_10.txt AC 6 ms 3856 KiB
test_11.txt AC 14 ms 21936 KiB
test_12.txt AC 15 ms 15452 KiB
test_13.txt AC 15 ms 17988 KiB
test_14.txt AC 11 ms 12072 KiB
test_15.txt AC 11 ms 11544 KiB
test_16.txt AC 13 ms 13940 KiB
test_17.txt AC 15 ms 19780 KiB
test_18.txt AC 15 ms 17940 KiB
test_19.txt AC 15 ms 15520 KiB
test_20.txt AC 6 ms 3900 KiB
test_21.txt AC 14 ms 21572 KiB
test_22.txt AC 11 ms 11844 KiB
test_23.txt AC 13 ms 13700 KiB
test_24.txt AC 18 ms 33924 KiB
test_25.txt AC 18 ms 33920 KiB
test_26.txt AC 18 ms 33940 KiB
test_27.txt AC 18 ms 25316 KiB
test_28.txt AC 17 ms 22668 KiB
test_29.txt AC 12 ms 13636 KiB