20pts求助
查看原帖
20pts求助
1063615
Scez楼主2024/7/27 09:33

stl单调栈

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define endl '\n'
using namespace std;
const int INF=0x3fffffff,MAXN=1e4+10;
inline int read() {
    int x=0,f=0;
    char ch=getchar();
    while(ch<'0'||ch>'9') {f|=(ch=='-');ch=getchar();}
    while('0'<=ch&&ch<='9') x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
    return f?-x:x;
}
ll n,h[2114514],a;
ll ans=1;
stack<ll> v;
signed main(){

	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a>>h[i];
		while(!v.empty()&&h[v.top()]>h[i])
		v.pop();
		if(!v.empty()&&h[i]!=h[v.top()])
		ans++;
		v.push(i);
	}
	cout<<ans;
	return 0;
}

2024/7/27 09:33
加载中...