209472026-01-11 16:50:49szabel26Legmesszebbi rossz sorrendű (35 pont)cpp17Accepted 35/3554ms2852 KiB
#include <iostream>
#include <vector>
#include <algorithm>
// #include <fstream>
using namespace std;

// ifstream fin("be2.txt");

struct adat
{
    long long nr, original_index, curr_max_index;
};

bool comp(adat a, adat b)
{
    if (a.nr == b.nr)
    {
        if (a.original_index < b.original_index) return 1;
        else return 0;
    }
    else if (a.nr < b.nr) return 1;
    else return 0;
}

vector<adat> x;
pair<long long, long long> sol;
long long n, i, maximum_dist, maximum_index;

int main()
{
    cin >> n;
    x.resize(n + 1);

    for (i = 1; i <= n; ++i)
    {
        cin >> x[i].nr;
        x[i].original_index = i;
    }

    sort(x.begin() + 1, x.end(), comp);

    maximum_index = 0;
    for (i = 1; i <= n; ++i)
    {
        if (x[i].original_index > maximum_index)
        {
            maximum_index = x[i].original_index;
        }
        x[i].curr_max_index = maximum_index;
    }

    /* for (auto &e : x)
    {
        cout << e.nr << " ";
    }
    cout << endl;
    for (auto &e : x)
    {
        cout << e.original_index << " ";
    }
    cout << endl;
    for (auto &e : x)
    {
        cout << e.curr_max_index << " ";
    } */

    maximum_dist = 0;
    sol.first = 0;
    sol.second = 0;
    for (i = 1; i <= n; ++i)
    {
        long long dist = x[i].curr_max_index - x[i].original_index; // Since curr_max_index >= original_index, abs is unnecessary
        if (dist > maximum_dist || (dist == maximum_dist && x[i].original_index < sol.first))
        {
            maximum_dist = dist;
            sol.first = x[i].original_index;
            sol.second = x[i].curr_max_index;
        }
    }

    if (maximum_dist == 0)
        cout << -1;
    else
        cout << sol.first << " " << sol.second;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base35/35
1Accepted0/01ms508 KiB
2Accepted0/054ms2612 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms508 KiB
8Accepted1/11ms500 KiB
9Accepted1/12ms316 KiB
10Accepted1/12ms508 KiB
11Accepted1/13ms500 KiB
12Accepted2/219ms1288 KiB
13Accepted2/223ms1468 KiB
14Accepted2/224ms1332 KiB
15Accepted2/214ms1124 KiB
16Accepted2/225ms1584 KiB
17Accepted2/239ms1844 KiB
18Accepted2/243ms2176 KiB
19Accepted2/248ms2480 KiB
20Accepted2/250ms2356 KiB
21Accepted2/254ms2736 KiB
22Accepted2/254ms2852 KiB
23Accepted2/243ms2612 KiB
24Accepted2/243ms2612 KiB