竞赛讨论区 > 各种自测都是对的,但通过率总是0%,求帮助
头像
牛客619430967号
发布于 2022-01-21 23:09
+ 关注

各种自测都是对的,但通过率总是0%,求帮助

#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) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐