5450 2023. 06. 11 16:06:08 Hora Legmesszebbi rossz sorrendű (35 pont) cpp11 Elfogadva 35/35 37ms 6520 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
  int n;
  cin >> n;
  vector<int> szam(n);
  vector<int> maxi(n, -100001);
  vector<int> mini(n, 100001);
  cin >> szam[0];
  maxi[0] = szam[0];
  for(int i = 1; i < n; i++){
    cin >> szam[i];
    maxi[i] = max(szam[i], maxi[i - 1]);
  }
  mini[n - 1] = szam[n - 1];
  for(int i = n - 2; i >= 0; i--){
    mini[i] = min(szam[i], mini[i + 1]);
  }
  int bal = 0, jobb = 1;
  int maxdis = 0, maxb = -1, maxj = 0;
  while(bal < n){
    while(jobb < n && mini[jobb] <= maxi[bal]){
      jobb++;
    }
    if(jobb == n && mini[jobb - 1] >= maxi[bal]){
      bal++;
      continue;
    }
    if(maxdis < jobb - bal && mini[jobb - 1] < maxi[bal]){
      maxdis = jobb - bal;
      maxb = bal;
      maxj = jobb - 1;
    }
    bal++;
  }
  if(maxb == -1 || maxb == maxj) cout << -1;
  else cout << maxb + 1 << " " << maxj + 1;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 35/35
1 Elfogadva 0/0 3ms 1688 KiB
2 Elfogadva 0/0 37ms 4244 KiB
3 Elfogadva 1/1 3ms 2064 KiB
4 Elfogadva 1/1 3ms 2272 KiB
5 Elfogadva 1/1 3ms 2512 KiB
6 Elfogadva 1/1 2ms 2600 KiB
7 Elfogadva 1/1 3ms 2580 KiB
8 Elfogadva 1/1 3ms 2716 KiB
9 Elfogadva 1/1 3ms 2964 KiB
10 Elfogadva 1/1 4ms 3296 KiB
11 Elfogadva 1/1 4ms 3384 KiB
12 Elfogadva 2/2 17ms 3924 KiB
13 Elfogadva 2/2 18ms 4188 KiB
14 Elfogadva 2/2 19ms 4300 KiB
15 Elfogadva 2/2 13ms 4036 KiB
16 Elfogadva 2/2 19ms 4452 KiB
17 Elfogadva 2/2 28ms 4784 KiB
18 Elfogadva 2/2 29ms 5492 KiB
19 Elfogadva 2/2 32ms 5672 KiB
20 Elfogadva 2/2 35ms 5888 KiB
21 Elfogadva 2/2 37ms 6472 KiB
22 Elfogadva 2/2 37ms 6456 KiB
23 Elfogadva 2/2 35ms 6456 KiB
24 Elfogadva 2/2 35ms 6520 KiB