144252025-01-10 18:23:52VarszegiLeventeInverziócpp17Elfogadva 50/50192ms4168 KiB
#include <iostream>
#include <bits/stdc++.h>

using namespace std;
/*
3
1 2 3
*/
int main()
{
    int n; cin >> n;
    vector<int> position_of(n + 1);
    int nextnum_tpm;
    for(int i = 1; i <= n; i++){
        cin >> nextnum_tpm;
        position_of[nextnum_tpm] = i;
    }
    vector<int> rightmost_of_smaller_numbers(n + 1, -1);
    for(int i = 2; i <= n; i++){
        if(position_of[i] < position_of[i - 1] or position_of[i] < rightmost_of_smaller_numbers[i - 1]){
            rightmost_of_smaller_numbers[i] = max(position_of[i - 1], rightmost_of_smaller_numbers[i - 1]);
        }
    }
    int maximum_inversion = 0;
    int index1, index2;
    for(int i = 1; i <= n; i++){
        if(rightmost_of_smaller_numbers[i] != -1){
            if(rightmost_of_smaller_numbers[i] - position_of[i] > maximum_inversion){
                maximum_inversion = rightmost_of_smaller_numbers[i] - position_of[i];
                index1 = position_of[i];
                index2 = rightmost_of_smaller_numbers[i];
            }
        }
    }
    if(maximum_inversion > 0){
        cout << index1 << " " << index2;
    }
    else{
        cout << "-1";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/017ms756 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva7/71ms316 KiB
6Elfogadva2/217ms608 KiB
7Elfogadva2/2182ms4164 KiB
8Elfogadva2/2190ms4148 KiB
9Elfogadva2/2192ms4148 KiB
10Elfogadva2/2185ms4160 KiB
11Elfogadva2/2188ms4148 KiB
12Elfogadva2/2185ms4116 KiB
13Elfogadva2/2186ms4160 KiB
14Elfogadva2/2186ms4148 KiB
15Elfogadva2/2184ms4160 KiB
16Elfogadva2/2187ms4148 KiB
17Elfogadva2/2188ms4144 KiB
18Elfogadva2/2186ms4164 KiB
19Elfogadva3/3184ms4168 KiB
20Elfogadva3/3184ms4148 KiB
21Elfogadva2/2185ms4156 KiB
22Elfogadva2/2185ms4164 KiB
23Elfogadva2/2187ms4148 KiB
24Elfogadva2/2180ms4160 KiB