155782025-02-20 17:24:57999Legmesszebbi rossz sorrendű (35 pont)cpp17Hibás válasz 4/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,ans2,maxi=-1;;
    for(int i = 0;i<n;i++){
        int l=-1,m,h=i;
        while(l<h-1){
            m=(l+h)/2;
            if(mx[m]>=v[i]){
                h=m;
            }
            else{
                l=h+1;
            }
        }
        if(maxi<i-h){
            maxi=i-h;
            ans1=h;
            ans2=i;
        }
    }
    cout<<ans1+1<<' '<<ans2+1<<endl;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/35
1Elfogadva0/01ms316 KiB
2Hibás válasz0/046ms2748 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms328 KiB
5Hibás válasz0/11ms336 KiB
6Elfogadva1/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/11ms316 KiB
9Hibás válasz0/11ms316 KiB
10Elfogadva1/12ms316 KiB
11Hibás válasz0/13ms508 KiB
12Hibás válasz0/217ms1296 KiB
13Hibás válasz0/219ms1332 KiB
14Hibás válasz0/220ms1332 KiB
15Hibás válasz0/213ms880 KiB
16Hibás válasz0/221ms1580 KiB
17Hibás válasz0/232ms2020 KiB
18Hibás válasz0/237ms2100 KiB
19Hibás válasz0/239ms2304 KiB
20Hibás válasz0/241ms2332 KiB
21Hibás válasz0/246ms2740 KiB
22Hibás válasz0/246ms2752 KiB
23Hibás válasz0/235ms2736 KiB
24Hibás válasz0/237ms2612 KiB