https://niumacode.com/training/173/problem/P1800

#include <iostream>
#include <vector>

using namespace std;
int main() {
    int n;
    cin>>n;
    vector<int> temp(n);
    for(int i=0;i<n;i++){
        
        cin>>temp[i];
        
    }
    
    int start=0,end=0;
    int ma=0,mi=0;
    int maxlen=0;
    bool newlist=true;
    vector<pair<int,int >>ans;
    
    int len=0;

    for(int i=0;i<n;i++){
        int cur=temp[i];
        
        if(cur<18||cur>24){
            newlist=true;
            if(len==0) continue;
            if(len>maxlen){
                ans.clear();
                maxlen=len;
                ans.push_back({start,end});
            }else if(len==maxlen){
                ans.push_back({start,end});
            }
            len=0;
        }else{
            if(newlist){
                ma=cur;
                mi=cur;
                start=i;
                end=i;
                len=1;
                newlist=false;
        	}else{
                ma=max(ma,cur);
                mi=min(mi,cur);
                //这里不能重置再遍历,要用滑窗在头尾进行处理
                while (ma - mi > 4) {
                    start++;  // 移除起始端的旧温度
                    // 重新计算新窗口的max/min(从start到i)
                    ma = temp[start];
                    mi = temp[start];
                    for (int j = start; j <= i; j++) {
                        ma = max(ma, temp[j]);
                        mi = min(mi, temp[j]);
                    }
                    len = i - start + 1;  // 更新窗口长度
                }

                // 窗口合法,更新长度和end
                len = i - start + 1;
                end = i;
            }
        	    
        }
        
    }
    // 循环结束后,处理最后一段有效区间(若存在)
    if (len > 0) {
        if (len > maxlen) {
            ans.clear();
            maxlen = len;
            ans.push_back({start, end});
        } else if (len == maxlen) {
            ans.push_back({start, end});
        }
    }
    
    for(auto& path : ans){
        cout<<path.first<<" "<<path.second<<endl;
    }
    return 0;
    
}
// 64 位输出请用 printf("%lld")