hdu 1506 单调队列

每个元素入队的时候所出队的元素的右边界就已经确定了 因为不可能有连续的比它还要大或是相等的元素出现

左边界的话 只要把序列倒过来入队就可以了 

本沙茶又逗了 倒过来的时候忘记把0算进去了 


#include
#include
#include
#include
using namespace std;
#define maxn 111111
#define ll __int64
ll height[maxn],lf[maxn],ri[maxn];
pairq[maxn];//height,pos
int main(){
    int f,r,n;
    while(~scanf("%d",&n),n){
        f=r=0;
     for(int i=0;i=0;i--){
          while(r&&height[i]


你可能感兴趣的:(单调队列)