209192026-01-11 13:15:09hunzombiInverziócpp17Hibás válasz 9/50187ms6288 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> arr(n + 1, 0);
    vector<int> prefMax(n + 1, 0);
    for (int i=1; i <= n; i++) {
        cin >> arr[i];
        prefMax[i] = max(prefMax[i - 1], arr[i]);
    }
    vector<int> suffMin(n + 2, 1e8);
    for (int i=n; i > 0; i--) {
        suffMin[i] = min(suffMin[i + 1], arr[i]);
    }

    int low = 1, high = n;
    int best_dist = -1;
    int best_i = -1, best_j = -1;
    while (low < high) {
        if (prefMax[low] > suffMin[high]) {
            if (high - low > best_dist) {
                best_dist = high - low;
                best_i = low;
                best_j = high;
            }
            high--;
        } else {
            low++;
        }
    }

    if (best_dist == -1) {
        cout << -1;
    } else {
        cout << best_i << ' ' << best_j;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/017ms804 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva2/21ms316 KiB
5Hibás válasz0/71ms316 KiB
6Elfogadva2/217ms804 KiB
7Hibás válasz0/2187ms6120 KiB
8Hibás válasz0/2185ms6120 KiB
9Elfogadva2/2186ms6124 KiB
10Hibás válasz0/2187ms6124 KiB
11Hibás válasz0/2186ms6120 KiB
12Hibás válasz0/2181ms5976 KiB
13Hibás válasz0/2187ms6128 KiB
14Hibás válasz0/2186ms6124 KiB
15Hibás válasz0/2187ms6196 KiB
16Hibás válasz0/2186ms6196 KiB
17Hibás válasz0/2185ms6124 KiB
18Hibás válasz0/2185ms6124 KiB
19Hibás válasz0/3186ms6196 KiB
20Hibás válasz0/3187ms6196 KiB
21Hibás válasz0/2185ms6128 KiB
22Hibás válasz0/2185ms6288 KiB
23Hibás válasz0/2187ms6124 KiB
24Elfogadva2/2187ms6120 KiB