155832025-02-20 17:46:20999Legmesszebbi rossz sorrendű (35 pont)cpp17Accepted 35/3559ms2752 KiB
// Source: https://usaco.guide/general/io

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

const int INF = 1e12;

signed main() {
    int n;cin>>n;
    vector<int> v(n),mx(n);
    deque<int> q;
    for(int i = 0;i<n;i++){
        cin>>v[i];
        if(i==0)mx[0]=v[0];
        else{
            mx[i]=max(mx[i-1],v[i]);
        }
    }
    vector<int> a;
    a=v;
    sort(a.begin(),a.end());
    if(a==v){
        cout<<-1;
        return 0;
    }
    int ans1=0,ans2=0,maxi=-1;;
    for(int i = 1;i<n;i++){
        int l=-1,m,h=i-1;
        while(l<h-1){
            m=(l+h)/2;
            if(mx[m]>v[i]){
                h=m;
            }
            else{
                l=m;//na neeeee 1 oraja debugolok csak azert hogy rajojjek l=h-t irtam l=m helyett, eskuszom megorulok
            }
        }
        if(maxi<i-h){
            maxi=i-h;
            ans1=h;
            ans2=i;
        }
    }
    cout<<ans1+1<<' '<<ans2+1<<endl;

}
SubtaskSumTestVerdictTimeMemory
base35/35
1Accepted0/01ms508 KiB
2Accepted0/057ms2612 KiB
3Accepted1/11ms508 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted1/11ms508 KiB
9Accepted1/12ms496 KiB
10Accepted1/12ms508 KiB
11Accepted1/13ms460 KiB
12Accepted2/219ms1332 KiB
13Accepted2/223ms1472 KiB
14Accepted2/225ms1420 KiB
15Accepted2/214ms1016 KiB
16Accepted2/225ms1456 KiB
17Accepted2/239ms2024 KiB
18Accepted2/245ms2100 KiB
19Accepted2/250ms2396 KiB
20Accepted2/252ms2356 KiB
21Accepted2/259ms2740 KiB
22Accepted2/257ms2752 KiB
23Accepted2/239ms2732 KiB
24Accepted2/239ms2612 KiB