#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin>>s;
int N=count(s.begin(),s.end(),'?');
stack<pair<int,int>> val;
stack<char> op;
for(int i=0;i<s.size();i++)
{
if(s[i]=='?')
{
val.push({1,N});
}
else if(s.compare(i,3,"min")==0)
{
op.push('n');
i+=2;
}
else if(s.compare(i,3,"max")==0)
{
op.push('x');
i+=2;
}
else if(s[i]==')')
{
auto b=val.top();val.pop();
auto a=val.top();val.pop();
char f=op.top();op.pop();
int l,r;
if(f=='n')
{
l=a.first+b.first-1;
r=min(a.second,b.second);
}
else
{
l=max(a.first,b.first);
r=a.second+b.second-1;
}
l=max(l,1);
r=min(r,N);
if(l>r) l=r+1;
val.push({l,r});
}
}
auto res=val.top();
cout<<res.second-res.first+1<<"\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |