2128 2022. 12. 21 08:54:54 samat Inverzió cpp11 Hibás válasz 5/50 181ms 7912 KiB
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
  // Bemenet olvasása
  int n;
  cin >> n;

  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }

  // Keresés a maximális távolságú inverzióra
  int max_distance = 0;
  pair<int, int> max_inversion;
  int min_so_far = a[n-1];
  for (int i = n-2; i >= 0; i--) {
    if (a[i] > min_so_far) {
      int distance = n - 1 - i;
      if (distance > max_distance) {
        max_distance = distance;
        max_inversion = {i, n-1};
      }
    }
    min_so_far = min(min_so_far, a[i]);
  }

  // Kimenet írása
  if (max_distance == 0) {
    cout << -1 << endl;
  } else {
    cout << max_inversion.first+1 << " " << max_inversion.second+1 << endl;
  }

  return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 5/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Hibás válasz 0/0 17ms 2372 KiB
3 Elfogadva 1/1 2ms 2348 KiB
4 Elfogadva 2/2 2ms 2428 KiB
5 Hibás válasz 0/7 2ms 2316 KiB
6 Hibás válasz 0/2 17ms 2580 KiB
7 Hibás válasz 0/2 173ms 6508 KiB
8 Hibás válasz 0/2 173ms 6668 KiB
9 Hibás válasz 0/2 172ms 6872 KiB
10 Hibás válasz 0/2 173ms 7188 KiB
11 Hibás válasz 0/2 172ms 7396 KiB
12 Hibás válasz 0/2 171ms 6968 KiB
13 Hibás válasz 0/2 173ms 7232 KiB
14 Hibás válasz 0/2 173ms 7484 KiB
15 Hibás válasz 0/2 173ms 7432 KiB
16 Hibás válasz 0/2 173ms 7436 KiB
17 Hibás válasz 0/2 173ms 7432 KiB
18 Hibás válasz 0/2 173ms 7756 KiB
19 Hibás válasz 0/3 173ms 7636 KiB
20 Hibás válasz 0/3 181ms 7640 KiB
21 Hibás válasz 0/2 173ms 7892 KiB
22 Hibás válasz 0/2 173ms 7844 KiB
23 Hibás válasz 0/2 173ms 7912 KiB
24 Elfogadva 2/2 173ms 7840 KiB