232502026-01-16 19:32:39999Síkság (55)cpp17Accepted 55/5537ms1068 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;cin>>n;
    vector<int> v(n);
    array<int, 3> ans;
    ans={0,0,0}; 
    for(int i = 0;i<n;i++){
        cin>>v[i];
    }
    deque<pair<int,int>> dx,dn;
    dx.push_front({v[0],0});
    dn.push_front({v[0],0});
    int j = 0;
    for(int i = 0;i<n;i++){
        if(!dx.empty()&&dx.back().second<i)dx.pop_back();
        if(!dn.empty()&&dn.back().second<i)dn.pop_back();
        while(j<n&&dx.back().first-dn.back().first<2){
            j++;
            if(j==n)break;
            while(!dx.empty()&&dx.front().first<v[j])dx.pop_front();
            while(!dn.empty()&&dn.front().first>v[j])dn.pop_front();
            dx.push_front({v[j],j});
            dn.push_front({v[j],j});
        }
        if(j-i>ans[0]){
            ans={j-i,i+1,j};
            //cout<<i+1<<' '<<j+1<<':'<<mn<<','<<mx<<endl;
        }
    }
    cout<<ans[2]-ans[1]+1<<' '<<ans[1];
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms512 KiB
2Accepted0/04ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/34ms316 KiB
11Accepted3/33ms324 KiB
12Accepted3/33ms436 KiB
13Accepted3/335ms748 KiB
14Accepted3/321ms1064 KiB
15Accepted3/328ms816 KiB
16Accepted3/335ms812 KiB
17Accepted3/337ms1060 KiB
18Accepted3/337ms1068 KiB
19Accepted3/337ms820 KiB
20Accepted3/337ms812 KiB
21Accepted3/318ms760 KiB
22Accepted3/329ms972 KiB