155812025-02-20 17:33:39999Legmesszebbi rossz sorrendű (35 pont)cpp17Hibás válasz 3/3546ms2752 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=h;
            }
        }
        if(maxi<i-h){
            maxi=i-h;
            ans1=h;
            ans2=i;
        }
    }
    cout<<ans1+1<<' '<<ans2+1<<endl;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/35
1Elfogadva0/01ms500 KiB
2Hibás válasz0/046ms2612 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/11ms316 KiB
6Hibás válasz0/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/11ms316 KiB
9Hibás válasz0/12ms316 KiB
10Elfogadva1/12ms316 KiB
11Hibás válasz0/12ms456 KiB
12Hibás válasz0/217ms1356 KiB
13Hibás válasz0/219ms1332 KiB
14Hibás válasz0/220ms1424 KiB
15Hibás válasz0/213ms880 KiB
16Hibás válasz0/221ms1588 KiB
17Hibás válasz0/232ms1840 KiB
18Hibás válasz0/237ms2176 KiB
19Hibás válasz0/241ms2300 KiB
20Hibás válasz0/241ms2332 KiB
21Hibás válasz0/245ms2736 KiB
22Hibás válasz0/246ms2752 KiB
23Hibás válasz0/237ms2736 KiB
24Hibás válasz0/237ms2752 KiB