5451 2023. 06. 12 08:02:39 Hora Legmesszebbi rossz sorrendű (35 pont) cpp11 Elfogadva 35/35 50ms 5556 KiB
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> szam(n);
	vector<int> mini(n, 100001);
	cin >> szam[0];
	for (int i = 1; i < n; i++) {
		cin >> szam[i];
	}
	mini[n - 1] = szam[n - 1];
	for (int i = n - 2; i >= 0; i--) {
		mini[i] = min(szam[i], mini[i + 1]);
	}
	int maxi = 0;
	pair<int, int> maxii;
	for (int i = 0; i < n; i++) {
		int lo = i, hi = n - 1;
		while (lo < hi) {
			int mid = lo + (hi - lo + 1) / 2;
			if (mini[mid] >= szam[i]) hi = mid - 1;
			else lo = mid;
		}
		if (lo - i > maxi && szam[i] > szam[lo]) {
			maxi = lo - i;
			maxii.first = i + 1;
			maxii.second = lo + 1;
		}
	}
	if (maxi != 0) cout << maxii.first << " " << maxii.second;
	else cout << -1;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 35/35
1 Elfogadva 0/0 3ms 1948 KiB
2 Elfogadva 0/0 50ms 3536 KiB
3 Elfogadva 1/1 3ms 2260 KiB
4 Elfogadva 1/1 3ms 2420 KiB
5 Elfogadva 1/1 3ms 2620 KiB
6 Elfogadva 1/1 2ms 2712 KiB
7 Elfogadva 1/1 3ms 2708 KiB
8 Elfogadva 1/1 3ms 2712 KiB
9 Elfogadva 1/1 3ms 3000 KiB
10 Elfogadva 1/1 4ms 3128 KiB
11 Elfogadva 1/1 4ms 3100 KiB
12 Elfogadva 2/2 18ms 3716 KiB
13 Elfogadva 2/2 21ms 3856 KiB
14 Elfogadva 2/2 23ms 4132 KiB
15 Elfogadva 2/2 14ms 3780 KiB
16 Elfogadva 2/2 24ms 4140 KiB
17 Elfogadva 2/2 35ms 4268 KiB
18 Elfogadva 2/2 39ms 4848 KiB
19 Elfogadva 2/2 43ms 4852 KiB
20 Elfogadva 2/2 45ms 5112 KiB
21 Elfogadva 2/2 48ms 5344 KiB
22 Elfogadva 2/2 50ms 5252 KiB
23 Elfogadva 2/2 37ms 5468 KiB
24 Elfogadva 2/2 37ms 5556 KiB