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 |
|
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 |