252262026-02-18 16:34:50mihalykocsisVölgy (100 pont)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms508 KiB
3Elfogadva5/51ms316 KiB
4Elfogadva5/51ms316 KiB
5Elfogadva5/51ms316 KiB
6Elfogadva5/51ms316 KiB
7Elfogadva5/51ms316 KiB
8Elfogadva5/51ms316 KiB
9Elfogadva5/52ms316 KiB
10Elfogadva5/52ms316 KiB
11Elfogadva5/54ms316 KiB
12Elfogadva5/54ms316 KiB
13Elfogadva5/54ms316 KiB
14Elfogadva5/54ms316 KiB
15Elfogadva5/535ms1568 KiB
16Elfogadva5/539ms1564 KiB
17Elfogadva5/537ms2280 KiB
18Elfogadva5/537ms1588 KiB
19Elfogadva5/537ms1568 KiB
20Elfogadva5/541ms1844 KiB
21Elfogadva5/541ms1828 KiB
22Elfogadva5/541ms1828 KiB