148532025-02-04 17:33:38csdavidLegmesszebbi rossz sorrendű (35 pont)cpp17Elfogadva 35/3548ms1180 KiB
#include <iostream>
#include <algorithm>

using namespace std;

struct s{
    int szam, ind;
};

bool alma(s x1, s x2){
    return x1.szam<x2.szam;
}

int main()
{
    int n;
    cin >> n;
    s a[n];
    for(int i=0; i<n; i++){
        cin >> a[i].szam;
        a[i].ind=i;
    }
    int maxd=0, maxind=-1, m1=-1, m2=-1, temp;
    sort(a, a+n, alma);
    maxind=a[0].ind;
    for(int i=1; i<n; i++){
        temp=0;
        if(maxind>a[i].ind&&maxd<maxind-a[i].ind){
            maxd=maxind-a[i].ind;
            m1=a[i].ind+1;
            m2=maxind+1;
            //cout << m1 << ' ' << m2<< "\nmaxd: " << maxd << "\n\n";
        }
        while(i<n-1&&a[i].szam==a[i+1].szam){
            temp=max(a[i].ind, temp);
            i++;
            if(maxind>a[i].ind&&maxd<maxind-a[i].ind){
                maxd=maxind-a[i].ind;
                m1=a[i].ind+1;
                m2=maxind+1;
            }
        }
        maxind=max(maxind, temp);
        //cout << "szam: " << a[i].szam << "\nind:" << a[i].ind << "\nmaxind: " << maxind << "\n\n";
        if(a[i].ind>maxind){
            maxind=a[i].ind;
        }
    }
    if(m1!=-1) cout << m1 << ' ' << m2 << '\n';
    else cout << -1 << '\n';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base35/35
1Elfogadva0/01ms508 KiB
2Elfogadva0/048ms1076 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms512 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms500 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/11ms404 KiB
9Elfogadva1/12ms316 KiB
10Elfogadva1/12ms316 KiB
11Elfogadva1/13ms316 KiB
12Elfogadva2/218ms564 KiB
13Elfogadva2/220ms740 KiB
14Elfogadva2/221ms648 KiB
15Elfogadva2/214ms472 KiB
16Elfogadva2/223ms716 KiB
17Elfogadva2/234ms820 KiB
18Elfogadva2/239ms976 KiB
19Elfogadva2/243ms1080 KiB
20Elfogadva2/243ms1076 KiB
21Elfogadva2/248ms1076 KiB
22Elfogadva2/248ms1180 KiB
23Elfogadva2/239ms980 KiB
24Elfogadva2/239ms1076 KiB