Submission #533445


Source Code Expand

#include <bits/stdc++.h>
#define all(x) begin(x),end(x)
#define rall(x) (x).rbegin(),(x).rend()
#define REP(i,b,n) for(int i=(int)(b);i<(int)(n);++i)
#define rep(i,n) REP(i,0,n)
#define rrep(i,n) for(int i=(int)(n)-1;i>=0;--i)
#define repsz(i,v) rep(i,(v).size())
#define aur auto&
#define bit(n) (1LL<<(n))
#define eb emplace_back
#define mt make_tuple
#define fst first
#define snd second
using namespace std;
typedef long long ll;
//#define int long long
template<class C>int size(const C &c){ return c.size(); }
template<class T,class U>bool chmin(T&a,const U&b){if(a<=b)return false;a=b;return true;}
template<class T,class U>bool chmax(T&a,const U&b){if(a>=b)return false;a=b;return true;}

// tr << ( vector, map, pair, tuple, etc... ) << endl//{{{
template <typename T, typename U>
struct sfinae_helper{typedef void type;};
template <typename T, typename U = void>
struct Print{ static ostream &pp(ostream &os, const T &x){ return os << x; } };
struct trace{//{{{
    ostream& os;
    trace(ostream& os): os(os) { }
    template<typename T>
        trace& operator<<(const T& x){ Print<T>::pp(os, x); return *this;}
    trace &operator<<(ostream& f(ostream&)){ f(os); return *this; }
    operator ostream &(){ return os; }
} tr(cout);//}}}
// string//{{{
template <> struct Print<string, void>{ static ostream &pp(ostream &os, const string &x){ return os << x; } };
//}}}
// Container//{{{
template <typename T> struct Print<T, typename sfinae_helper<T, typename T::iterator>::type>{
    static ostream &pp(ostream &os, const T &v){
        trace(os) << '[';
        for(const auto &x : v) trace(os) << x << ", ";
        return trace(os) << ']';
    }
};//}}}
// Pair//{{{
template <typename T> struct Print<T, typename sfinae_helper<T, typename T::first_type>::type>{
    static ostream &pp(ostream &os, const T &x){
        return trace(os) << '(' << x.first << ", " << x.second << ')';
    }
};//}}}
// Tuple//{{{
template<class T, size_t N> struct TuplePrint{
    static ostream &print(ostream &os, const T &x){
        TuplePrint<T, N-1>::print(os, x) << ", ";
        return trace(os) << get<N-1>(x);
        //return Print<decltype(get<N-1>(x))>::pp(os, get<N-1>(x));
    }
};
template<class T> struct TuplePrint<T, 1>{
    static ostream &print(ostream &os, const T &x){
        return trace(os) << get<0>(x);
    }
};
template <typename... Args>//Tuple
struct Print<tuple<Args...>>{
    static ostream &pp(ostream &os, const tuple<Args...> &x){
        os << "(";
        return TuplePrint<decltype(x), sizeof...(Args)>::print(os, x) << ")";
    }
};//}}}
//}}}
bool solve(){
    string A; cin >> A;
    int n = size(A);
    vector<int> l(n), r(n);
    vector<int> stack;
    rep(i, n){
        char c = A[i];
        if(isdigit(c)){
            stack.emplace_back(i);
            l[i] = r[i] = -1;
        }else{
            int rhs = stack.back(); stack.pop_back();
            int lhs = stack.back(); stack.pop_back();
            l[i] = lhs;
            r[i] = rhs;
            stack.emplace_back(i);
        }
    }
    vector<int> depth(n, -1);
    {
        depth[n-1] = 0;
        queue<int> q; q.emplace(n-1);
        while(!q.empty()){
            int u = q.front(); q.pop();
            if(!isdigit(A[u])){
                depth[l[u]] = depth[r[u]] = depth[u] + 1;
                q.emplace(l[u]); q.emplace(r[u]);
            }
        }
    }
    vector<string> res(n);
    rep(i, n) res[depth[i]] += A[i];
    reverse(all(res));
    rep(i, n) reverse(all(res[i]));
    rep(i, n) cout << res[i];
    cout << endl;
    return true;
}
signed main(){
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);
    cout << std::fixed << std::setprecision(10);
    solve();
    return 0;
}
// vim:set foldmethod=marker commentstring=//%s:

Submission Info

Submission Time
Task F - 逆ポーランド記法
User MiSawa
Language C++11 (GCC 4.9.2)
Score 200
Code Size 3883 Byte
Status AC
Exec Time 29 ms
Memory 932 KB

Judge Result

Set Name All
Score / Max Score 200 / 200
Status
AC × 96
Set Name Test Cases
All 00_sample_01.txt, 00_sample_02.txt, 10_random_all_01.txt, 10_random_all_02.txt, 10_random_all_03.txt, 10_random_all_04.txt, 10_random_all_05.txt, 10_random_all_06.txt, 10_random_all_07.txt, 10_random_all_08.txt, 10_random_all_09.txt, 10_random_all_10.txt, 10_random_all_11.txt, 10_random_all_12.txt, 10_random_all_13.txt, 10_random_all_14.txt, 10_random_all_15.txt, 10_random_all_16.txt, 10_random_all_17.txt, 10_random_all_18.txt, 10_random_all_19.txt, 10_random_all_20.txt, 10_random_all_21.txt, 10_random_all_22.txt, 10_random_all_23.txt, 10_random_all_24.txt, 10_random_all_25.txt, 10_random_all_26.txt, 10_random_all_27.txt, 10_random_all_28.txt, 10_random_all_29.txt, 10_random_all_30.txt, 10_random_all_31.txt, 10_random_all_32.txt, 10_random_all_33.txt, 10_random_all_34.txt, 10_random_all_35.txt, 10_random_all_36.txt, 10_random_all_37.txt, 10_random_all_38.txt, 10_random_all_39.txt, 10_random_all_40.txt, 10_random_all_41.txt, 10_random_all_42.txt, 10_random_all_43.txt, 10_random_all_44.txt, 10_random_all_45.txt, 10_random_all_46.txt, 10_random_all_47.txt, 10_random_all_48.txt, 10_random_all_49.txt, 10_random_all_50.txt, 22_small_51.txt, 22_small_52.txt, 22_small_53.txt, 22_small_54.txt, 22_small_55.txt, 22_small_56.txt, 22_small_57.txt, 22_small_58.txt, 22_small_59.txt, 22_small_60.txt, 22_small_61.txt, 22_small_62.txt, 22_small_63.txt, 22_small_64.txt, 22_small_65.txt, 22_small_66.txt, 22_small_67.txt, 22_small_68.txt, 22_small_69.txt, 22_small_70.txt, 33_alternation_71.txt, 33_alternation_72.txt, 33_alternation_73.txt, 33_alternation_74.txt, 33_alternation_75.txt, 33_alternation_76.txt, 33_alternation_77.txt, 33_alternation_78.txt, 33_alternation_79.txt, 33_alternation_80.txt, 34_oneside_81.txt, 34_oneside_82.txt, 34_oneside_83.txt, 34_oneside_84.txt, 34_oneside_85.txt, 34_oneside_86.txt, 34_oneside_87.txt, 34_oneside_88.txt, 34_oneside_89.txt, 34_oneside_90.txt, 44_mul_91.txt, 44_mul_92.txt, 44_mul_93.txt, 44_mul_94.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 27 ms 840 KB
00_sample_02.txt AC 24 ms 808 KB
10_random_all_01.txt AC 24 ms 800 KB
10_random_all_02.txt AC 25 ms 796 KB
10_random_all_03.txt AC 26 ms 736 KB
10_random_all_04.txt AC 25 ms 924 KB
10_random_all_05.txt AC 26 ms 804 KB
10_random_all_06.txt AC 25 ms 796 KB
10_random_all_07.txt AC 26 ms 928 KB
10_random_all_08.txt AC 25 ms 928 KB
10_random_all_09.txt AC 25 ms 844 KB
10_random_all_10.txt AC 25 ms 728 KB
10_random_all_11.txt AC 23 ms 800 KB
10_random_all_12.txt AC 25 ms 924 KB
10_random_all_13.txt AC 26 ms 804 KB
10_random_all_14.txt AC 25 ms 804 KB
10_random_all_15.txt AC 24 ms 800 KB
10_random_all_16.txt AC 23 ms 804 KB
10_random_all_17.txt AC 25 ms 920 KB
10_random_all_18.txt AC 26 ms 804 KB
10_random_all_19.txt AC 25 ms 840 KB
10_random_all_20.txt AC 25 ms 928 KB
10_random_all_21.txt AC 26 ms 804 KB
10_random_all_22.txt AC 25 ms 924 KB
10_random_all_23.txt AC 25 ms 808 KB
10_random_all_24.txt AC 24 ms 928 KB
10_random_all_25.txt AC 25 ms 724 KB
10_random_all_26.txt AC 26 ms 920 KB
10_random_all_27.txt AC 25 ms 924 KB
10_random_all_28.txt AC 26 ms 804 KB
10_random_all_29.txt AC 23 ms 928 KB
10_random_all_30.txt AC 26 ms 796 KB
10_random_all_31.txt AC 25 ms 804 KB
10_random_all_32.txt AC 23 ms 920 KB
10_random_all_33.txt AC 25 ms 928 KB
10_random_all_34.txt AC 25 ms 920 KB
10_random_all_35.txt AC 25 ms 800 KB
10_random_all_36.txt AC 24 ms 804 KB
10_random_all_37.txt AC 25 ms 800 KB
10_random_all_38.txt AC 25 ms 800 KB
10_random_all_39.txt AC 23 ms 800 KB
10_random_all_40.txt AC 25 ms 928 KB
10_random_all_41.txt AC 28 ms 800 KB
10_random_all_42.txt AC 24 ms 904 KB
10_random_all_43.txt AC 25 ms 920 KB
10_random_all_44.txt AC 25 ms 728 KB
10_random_all_45.txt AC 25 ms 924 KB
10_random_all_46.txt AC 25 ms 916 KB
10_random_all_47.txt AC 24 ms 916 KB
10_random_all_48.txt AC 25 ms 724 KB
10_random_all_49.txt AC 25 ms 724 KB
10_random_all_50.txt AC 24 ms 728 KB
22_small_51.txt AC 24 ms 724 KB
22_small_52.txt AC 25 ms 920 KB
22_small_53.txt AC 25 ms 924 KB
22_small_54.txt AC 24 ms 796 KB
22_small_55.txt AC 26 ms 800 KB
22_small_56.txt AC 25 ms 920 KB
22_small_57.txt AC 27 ms 800 KB
22_small_58.txt AC 26 ms 728 KB
22_small_59.txt AC 27 ms 920 KB
22_small_60.txt AC 29 ms 792 KB
22_small_61.txt AC 27 ms 732 KB
22_small_62.txt AC 27 ms 820 KB
22_small_63.txt AC 26 ms 808 KB
22_small_64.txt AC 25 ms 920 KB
22_small_65.txt AC 25 ms 800 KB
22_small_66.txt AC 29 ms 808 KB
22_small_67.txt AC 29 ms 732 KB
22_small_68.txt AC 27 ms 808 KB
22_small_69.txt AC 25 ms 800 KB
22_small_70.txt AC 25 ms 728 KB
33_alternation_71.txt AC 26 ms 800 KB
33_alternation_72.txt AC 27 ms 744 KB
33_alternation_73.txt AC 28 ms 928 KB
33_alternation_74.txt AC 25 ms 928 KB
33_alternation_75.txt AC 28 ms 800 KB
33_alternation_76.txt AC 27 ms 796 KB
33_alternation_77.txt AC 26 ms 728 KB
33_alternation_78.txt AC 24 ms 928 KB
33_alternation_79.txt AC 23 ms 928 KB
33_alternation_80.txt AC 23 ms 928 KB
34_oneside_81.txt AC 23 ms 932 KB
34_oneside_82.txt AC 24 ms 908 KB
34_oneside_83.txt AC 24 ms 800 KB
34_oneside_84.txt AC 25 ms 800 KB
34_oneside_85.txt AC 23 ms 916 KB
34_oneside_86.txt AC 29 ms 928 KB
34_oneside_87.txt AC 25 ms 736 KB
34_oneside_88.txt AC 27 ms 760 KB
34_oneside_89.txt AC 25 ms 916 KB
34_oneside_90.txt AC 25 ms 728 KB
44_mul_91.txt AC 24 ms 920 KB
44_mul_92.txt AC 25 ms 800 KB
44_mul_93.txt AC 24 ms 808 KB
44_mul_94.txt AC 24 ms 920 KB