155752025-02-20 17:09:44999Legmesszebbi rossz sorrendű (35 pont)cpp17Hibás válasz 3/3539ms2028 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]);
        }
    }
    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<<(maxi==-1LL?"-1":to_string(ans1+1)+" "+to_string(ans2+1))<<endl;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/35
1Elfogadva0/01ms316 KiB
2Hibás válasz0/039ms1844 KiB
3Hibás válasz0/11ms320 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/11ms352 KiB
9Hibás válasz0/11ms316 KiB
10Elfogadva1/12ms508 KiB
11Hibás válasz0/12ms460 KiB
12Hibás válasz0/216ms1044 KiB
13Hibás válasz0/217ms1120 KiB
14Hibás válasz0/218ms1168 KiB
15Hibás válasz0/212ms820 KiB
16Hibás válasz0/219ms1100 KiB
17Hibás válasz0/228ms1500 KiB
18Hibás válasz0/230ms1668 KiB
19Hibás válasz0/234ms1792 KiB
20Hibás válasz0/235ms1588 KiB
21Hibás válasz0/237ms1968 KiB
22Hibás válasz0/239ms1844 KiB
23Hibás válasz0/234ms1964 KiB
24Hibás válasz0/235ms2028 KiB