链接:link.
题意:
六个选择:
1.指定速度为x
2.发生超车
3.此后限速为x
4.此后允许超车
5.此后不限速
6.此后禁止超车
给出n项操作,问至少无视几项操作才算不违规。
int n,choice,sp,lim,na;
stack<int>s;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int ans=0;lim=INF;na=0;
cin>>n;
cin>>choice>>sp;
for(int i=1;i<n;i++)
{
cin>>choice;
if(choice==1)
{
cin>>sp;
while(!s.empty()&&sp>lim)
{
s.pop(),ans++;
if(s.empty())lim=INF;
else lim=s.top();
}
}
else if(choice==2)
{
ans+=na;
na=0;
}
else if(choice==3)
{
int x;cin>>x;
if(sp>x)ans++;
else lim=x,s.push(x);
}
else if(choice==4)na=0;
else if(choice==5)
{
while(!s.empty())s.pop();
lim=INF;
}
else na++;
}
cout<<ans<<"\n";
return 0;
}