提出 #52612307


ソースコード 拡げる

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define pa first
#define pb second
#define endl '\n'
#define vint vector<int>
#define vlong vector<ll>
#define pii pair<int, int>
#define rep(i, a, b) for (int i = int(a); i < int(b); i++)
#define rng(i, a, b) for (int i = int(a); i <= int(b); i++)
#define per(i, a, b) for (int i = int(b - 1); i >= int(a); i--)
#define gnr(i, a, b) for (int i = int(b); i >= int(a); i--)
using namespace std;
#define ATC
#ifdef ATC
#include <atcoder/all>
using namespace atcoder;
#endif

#ifdef MT
void solve()
{
}
#endif

char toggle(char ch)
{
    if (ch >= 'a' && ch <= 'z')
        return ch - 'a' + 'A';
    else
        return ch - 'A' + 'a';
}

const int N = 5e5 + 10;

int par[N];

string str, ans;
void dfs(int s, int e, int d)
{
    for (int i = s; i != e; i += d) {
        if (str[i] != '(' && str[i] != ')') {
            if (str[i] != ' ')
                ans.push_back(str[i]);
        } else {
            str[i] = ' ';
            str[par[i]] = ' ';
            dfs(par[i], i, -d);
            i = par[i];
        }
    }
}

int main(void)
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> str;
    stack<int> st;
    rep(i, 0, str.length())
    {
        if (str[i] == '(') {
            st.push(i);
            continue;
        }
        if (str[i] == ')') {
            par[st.top()] = i;
            par[i] = st.top();
            st.pop();
            continue;
        }
        if (st.size() & 1) {
            str[i] = toggle(str[i]);
        }
    }

    dfs(0, str.length(), 1);
    cout << ans << endl;

#ifdef MT
    int t;
    cin >> t;
    for (int i = 0; i < t; i++)
        solve();
#endif
}

提出情報

提出日時
問題 F - Transpose
ユーザ L1bra
言語 C++ 20 (gcc 12.2)
得点 550
コード長 1808 Byte
結果 AC
実行時間 17 ms
メモリ 30024 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 550 / 550
結果
AC × 4
AC × 33
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3488 KiB
sample_02.txt AC 1 ms 3504 KiB
sample_03.txt AC 1 ms 3636 KiB
sample_04.txt AC 1 ms 3500 KiB
test_01.txt AC 1 ms 3512 KiB
test_02.txt AC 1 ms 3564 KiB
test_03.txt AC 1 ms 3496 KiB
test_04.txt AC 13 ms 15208 KiB
test_05.txt AC 6 ms 7280 KiB
test_06.txt AC 13 ms 16800 KiB
test_07.txt AC 13 ms 14412 KiB
test_08.txt AC 13 ms 15892 KiB
test_09.txt AC 13 ms 15504 KiB
test_10.txt AC 4 ms 4560 KiB
test_11.txt AC 13 ms 17848 KiB
test_12.txt AC 12 ms 12116 KiB
test_13.txt AC 13 ms 13916 KiB
test_14.txt AC 7 ms 8904 KiB
test_15.txt AC 7 ms 8332 KiB
test_16.txt AC 10 ms 10492 KiB
test_17.txt AC 13 ms 16028 KiB
test_18.txt AC 13 ms 13940 KiB
test_19.txt AC 12 ms 12136 KiB
test_20.txt AC 4 ms 4616 KiB
test_21.txt AC 13 ms 17852 KiB
test_22.txt AC 7 ms 8732 KiB
test_23.txt AC 9 ms 10224 KiB
test_24.txt AC 17 ms 29972 KiB
test_25.txt AC 17 ms 29964 KiB
test_26.txt AC 17 ms 30024 KiB
test_27.txt AC 15 ms 21356 KiB
test_28.txt AC 14 ms 18672 KiB
test_29.txt AC 8 ms 10440 KiB