Submission #712478

#TimeUsernameProblemLanguageResultExecution timeMemory
712478jcelinHomework (CEOI22_homework)C++14
100 / 100
75 ms45472 KiB
#include <bits/stdc++.h> //#include<ext/pb_ds/assoc_container.hpp> //#include<ext/pb_ds/tree_policy.hpp> using namespace std; //using namespace __gnu_pbds; typedef long long ll; typedef long double ld; #define ii pair<int,int> #define pll pair<ll,ll> #define vi vector<int> #define vii vector<ii> #define vll vector<ll> #define vpll vector<pll> #define msi multiset<int> #define si set<int> #define PB push_back #define PF push_front #define PPB pop_back #define PPF pop_front #define X first #define Y second #define MP make_pair #define FOR(i, a, b) for (int i = int(a); i < int(b); i++) #define REP(i, n) FOR(i, 0, n) #define all(x) (x).begin(), (x).end() const int mod = 1e9 + 7; const int MOD = 998244353; const int inf = mod; const ll INF = 1e18; const int logo = 20; const int MAXN = 1e6 + 7; const int off = 1 << logo; const int trsz = off << 1; int cnt = 0; int pos = 0; string s; ii dfs(){ if(s[pos] == ',' or s[pos] == '(') pos++; if(s[pos] == 'm') pos += 2; if(s[pos] == '?') return {1, cnt}; bool cur = (s[pos] == 'x'); pos++; ii i1 = dfs(); pos++; ii i2 = dfs(); pos++; if(cur) return {i1.X + i2.X, max(i1.Y, i2.Y)}; return {min(i1.X, i2.X), i1.Y + i2.Y - cnt - 1}; } void solve(){ cin >> s; for(auto &x : s) cnt += (x == '?'); ii ans = dfs(); cout << ans.Y - ans.X + 1 << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t=1; //cin >> t; while(t--)solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...