197572025-12-21 23:28:00AncsaLegmesszebbi rossz sorrendű (35 pont)cpp17Hibás válasz 25/3552ms2120 KiB
#include <bits/stdc++.h>
#include<queue>

using namespace std;

bool rendez(pair<int, int> a, pair<int, int> b )
{
    if (a.first>b.first)
        return true;
    else if (a.first==b.first)
        return a.second<b.second;
    return false;
}

int main()
{
    int utolso,eleje=-1,vege=-1,index;
    int n;
    cin>>n;
    utolso=n-1;
    bool volte[n];
    vector<int> a(n);
    vector<pair<int, int>> seged;
    for(int i=0;i<n;i++)
    {
        cin>>a.at(i);
        volte[i]=false;
        seged.push_back(make_pair(a[i],i));
    }

    sort(seged.begin(), seged.end(), rendez);

    for(pair<int, int> x: seged)
    {
        index=x.second;
        volte[index]=true;
        if(index!=utolso && utolso-index>=vege-eleje)
        {
            eleje=index;
            vege=utolso;
        }
        while(volte[utolso])
            utolso--;

    }
    if(eleje==-1)
    {
        cout<<-1;
        return 0;
    }
    cout<<eleje+1<<" "<<vege+1;
  return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base25/35
1Elfogadva0/01ms500 KiB
2Elfogadva0/052ms1960 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/11ms380 KiB
9Elfogadva1/12ms416 KiB
10Elfogadva1/12ms396 KiB
11Elfogadva1/13ms508 KiB
12Hibás válasz0/220ms1200 KiB
13Hibás válasz0/224ms1248 KiB
14Hibás válasz0/224ms1212 KiB
15Hibás válasz0/214ms904 KiB
16Hibás válasz0/226ms1200 KiB
17Elfogadva2/237ms1704 KiB
18Elfogadva2/241ms1812 KiB
19Elfogadva2/246ms1828 KiB
20Elfogadva2/248ms1964 KiB
21Elfogadva2/252ms1980 KiB
22Elfogadva2/252ms1964 KiB
23Elfogadva2/241ms1820 KiB
24Elfogadva2/241ms2120 KiB