209182026-01-11 13:01:42hunzombiInverziócpp17Hibás válasz 6/50182ms6200 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 = 0, 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_i = low;
                best_j = high;
            }
            high++;
        } else {
            low++;
        }
    }

    cout << best_i << ' ' << best_j;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/01ms508 KiB
2Hibás válasz0/017ms820 KiB
3Hibás válasz0/11ms316 KiB
4Elfogadva2/21ms316 KiB
5Hibás válasz0/71ms316 KiB
6Elfogadva2/217ms800 KiB
7Hibás válasz0/2180ms6196 KiB
8Hibás válasz0/2182ms6116 KiB
9Elfogadva2/2177ms6120 KiB
10Hibás válasz0/2179ms6188 KiB
11Hibás válasz0/2178ms6124 KiB
12Hibás válasz0/2174ms5940 KiB
13Hibás válasz0/2179ms6120 KiB
14Hibás válasz0/2178ms6120 KiB
15Hibás válasz0/2178ms6120 KiB
16Hibás válasz0/2179ms6196 KiB
17Hibás válasz0/2178ms6124 KiB
18Hibás válasz0/2179ms6120 KiB
19Hibás válasz0/3179ms6124 KiB
20Hibás válasz0/3178ms6200 KiB
21Hibás válasz0/2179ms6196 KiB
22Hibás válasz0/2178ms6116 KiB
23Hibás válasz0/2178ms6120 KiB
24Hibás válasz0/2179ms6196 KiB