252262026-02-18 16:34:50mihalykocsisVölgy (100 pont)cpp17Accepted 100/10041ms2280 KiB
#include <bits/stdc++.h>
using namespace std;
#define vermecske stack

int main() {
	int n; cin >> n;
	vector<int> v(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
	}
	vermecske<pair<int, int>> s;
	vector<int> ans(n, -1);
	vector<int> ans2(n, -1);
	for (int i = 0; i < n; i++) {
		while (!s.empty() && v[i] > s.top().first) {
			s.pop();
		}
		if (!s.empty()) {
			ans[i] = s.top().second;
		}
		s.push({v[i], i});
	}
	for (int i = n - 1; i >= 0; i--) {
		while (!s.empty() && v[i] > s.top().first) {
			s.pop();
		}
		if (!s.empty()) {
			ans2[i] = s.top().second;
		}
		s.push({v[i], i});
	}
	int maxi = 0;
	for (int i = 0; i < n; i++) {
		if(ans[i] != -1)maxi = max(i - ans[i], maxi);
	}
	for (int i = 0; i < n; i++) {
		if(ans2[i] != -1)maxi = max(ans2[i] - i, maxi);
	}
	if (maxi == 1) {
		cout << -1;
		return 0;
	}
	cout << maxi;
}
SubtaskSumTestVerdictTimeMemory
base100/100
1Accepted0/01ms316 KiB
2Accepted0/01ms508 KiB
3Accepted5/51ms316 KiB
4Accepted5/51ms316 KiB
5Accepted5/51ms316 KiB
6Accepted5/51ms316 KiB
7Accepted5/51ms316 KiB
8Accepted5/51ms316 KiB
9Accepted5/52ms316 KiB
10Accepted5/52ms316 KiB
11Accepted5/54ms316 KiB
12Accepted5/54ms316 KiB
13Accepted5/54ms316 KiB
14Accepted5/54ms316 KiB
15Accepted5/535ms1568 KiB
16Accepted5/539ms1564 KiB
17Accepted5/537ms2280 KiB
18Accepted5/537ms1588 KiB
19Accepted5/537ms1568 KiB
20Accepted5/541ms1844 KiB
21Accepted5/541ms1828 KiB
22Accepted5/541ms1828 KiB