Submission #1268152

#TimeUsernameProblemLanguageResultExecution timeMemory
1268152chfHomework (CEOI22_homework)C++20
0 / 100
57 ms12220 KiB
#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 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...