Submission #1189349

#TimeUsernameProblemLanguageResultExecution timeMemory
1189349UnforgettableplHomework (CEOI22_homework)C++20
100 / 100
183 ms172720 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

struct ran{
    int L,R,S;
    ran(int a,int b,int c):L(a),R(b),S(c){}
};

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    function<ran()> solve = [&](){
        char a;
        cin >> a;
        if(a=='?'){
            return ran(1,1,1);
        }
        cin >> a >> a;
        bool isMax = a=='x';
        cin >> a;
        auto left = solve();
        cin >> a;
        auto right = solve();
        cin >> a;
        if(isMax){
            left.L = left.S-left.L+1;
            left.R = left.S-left.R+1;
            swap(left.L,left.R);
            right.L = right.S-right.L+1;
            right.R = right.S-right.R+1;
            swap(right.L,right.R);
        }
        auto myAns = ran(min(left.L,right.L),left.R+right.R-1,left.S+right.S);
        if(isMax){
            myAns.L = myAns.S-myAns.L+1;
            myAns.R = myAns.S-myAns.R+1;
            swap(myAns.L,myAns.R);
        }
        return myAns;
    };
    auto ans = solve();
    cout << ans.R-ans.L+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...