#include<bits/stdc++.h> using namespace std; int a[100010]; queue<pair<int,int>> q; int main(){ int t;cin>>t; while(t--){ int n;cin>>n; for(int i=1;i<=n;i++){ scanf("%d ",&a[i]); } int maxn=-1,l=-1,r=-1,flag=0;//flag标记是否在非严格递增区间中 for(int i=2;i<=n+1;i++){//刚刚进入递增区间 if(a[i]>=a[i-1]){ if(flag==0){ l=i-1; r=i; flag=1; }else{ r=i; } }else if(flag){//进入递减区间 flag=0; if(a[r]-a[l]==maxn&&r!=n+1) q.push({l,r}); else if(a[r]-a[l]>maxn){ while(!q.empty()) q.pop(); q.push({l,r}); maxn=a[r]-a[l]; } } } while(!q.empty()) cout<<q.front().first<<" "<<q.front().second<<" ",q.pop(); cout<<'\n'; for(int i=0;i<=n+5;i++) a[i]=0; } return 0; }
全部评论
(0) 回帖