Submission #1302691

#TimeUsernameProblemLanguageResultExecution timeMemory
1302691AMnuHomework (CEOI22_homework)C++20
100 / 100
94 ms101332 KiB
#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
typedef pair<int,int> pii;
typedef pair<int,pii> piii;

int cur;
string S;

piii parse() {
    if (S[cur] == '?') {
        cur++;
        return {1,{1,1}};
    }
    bool mx = (S[cur+1] == 'a');
    cur += 4;
    piii x = parse();
    cur++;
    piii y = parse();
    cur++;
    piii z = {x.fi+y.fi,{0,0}};
    if (mx) {
        z.se.fi = x.se.fi + y.se.fi;
        z.se.se = z.fi - min(x.fi-x.se.se,y.fi-y.se.se);
    }
    else {
        z.se.fi = min(x.se.fi,y.se.fi);
        z.se.se = z.fi - (x.fi-x.se.se) - (y.fi-y.se.se) - 1;
    }
    return z;
}

int main () {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> S;
    pii ans = parse().se;
    cout << ans.se - ans.fi + 1 << "\n";
}
#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...