251282026-02-18 03:02:48999Völgy (100 pont)cpp17Hibás válasz 55/10041ms2340 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 = -1;
	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);
	}
	cout << maxi;
}
//ocsemnek teszt, mert nem tudta mar o befejezni mert el kellett mennie aludni
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/100
1Elfogadva0/01ms500 KiB
2Elfogadva0/01ms316 KiB
3Hibás válasz0/51ms316 KiB
4Hibás válasz0/51ms316 KiB
5Elfogadva5/51ms316 KiB
6Elfogadva5/51ms368 KiB
7Elfogadva5/51ms316 KiB
8Elfogadva5/51ms316 KiB
9Hibás válasz0/51ms316 KiB
10Elfogadva5/51ms316 KiB
11Elfogadva5/53ms316 KiB
12Hibás válasz0/53ms364 KiB
13Hibás válasz0/54ms436 KiB
14Elfogadva5/54ms436 KiB
15Hibás válasz0/535ms1332 KiB
16Elfogadva5/539ms1572 KiB
17Hibás válasz0/537ms2340 KiB
18Hibás válasz0/537ms1756 KiB
19Hibás válasz0/537ms1780 KiB
20Elfogadva5/539ms1840 KiB
21Elfogadva5/541ms1824 KiB
22Elfogadva5/539ms1844 KiB