Submission #1136949

#TimeUsernameProblemLanguageResultExecution timeMemory
1136949ariukHomework (CEOI22_homework)C++20
100 / 100
136 ms54424 KiB
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

string s;
int n, x;
int L, R;

void solve(int &x) {
    if(s[x] == '?'){
        L = 1;
        R = n;
        return;
    }
    
    x++;
    char c = s[x];
    int l1, r1, l2, r2;
    x += 3;
    
    solve(x);
    l1 = L;
    r1 = R;
    x += 2;
    
    solve(x);
    l2 = L;
    r2 = R;
    x++;
    
    if(c == 'i'){
        L = min(l1, l2);
        R = r1 + r2 - n - 1;
    }else{
        L = l1 + l2;
        R = max(r1, r2);
    }
}

int main(){
    cin >> s;
    
    for(int i = 0; i < s.size(); i++){
        if (s[i] == '?') n++;
    }
    
    int x = 0;
    solve(x);
    
    cout << R - L + 1 << endl;
    
    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...