168232025-05-13 18:04:36vargaviviInverziócpp17Accepted 50/50128ms4600 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	/*
	//időlimites
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, hossz = 0, ans1 = -1, ans2;
    cin >> n;
	vector<pair<int, int>> v(n);
	vector<int> vege(n);
	for (int i = 0; i < n; i ++) {
		vege[i] = i;
		cin >> v[i].first;
		v[i].second = i;
	}
	sort(v.rbegin(), v.rend());
	for (int i = 0; i < n - 1; i ++) {
		if (vege.back() - v[i].second > hossz) {
			hossz = vege.back() - v[i].second;
			ans1 = v[i].second + 1;
			ans2 = vege.back() + 1;
		}
		vege.erase(find(vege.begin(), vege.end(), v[i].second));
	}
	cout << ans1 << " ";
	if (ans1 != -1) cout << ans2;
	*/
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n, hossz = 0, ans1 = -1, ans2;
    cin >> n;
	int last = n - 1;
	vector<pair<int, int>> v(n);
	vector<bool> vege(n);
	for (int i = 0; i < n; i ++) {
		vege[i] = i;
		cin >> v[i].first;
		v[i].second = i;
	}
	sort(v.rbegin(), v.rend());
	for (int i = 0; i < n - 1; i ++) {
		if (last - v[i].second > hossz) {
			hossz = last - v[i].second;
			ans1 = v[i].second + 1;
			ans2 = last + 1;
		}
		vege[v[i].second] = false;
		if (last == v[i].second) {
			int index = last;
			while (index >= 0 && !vege[index]) {
				index --;
			}
			last = index;
		}
	}
	cout << ans1 << " ";
	if (ans1 != -1) cout << ans2;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/08ms820 KiB
3Accepted1/11ms316 KiB
4Accepted2/21ms496 KiB
5Accepted7/71ms316 KiB
6Accepted2/212ms820 KiB
7Accepted2/287ms4404 KiB
8Accepted2/2126ms4152 KiB
9Accepted2/2128ms4404 KiB
10Accepted2/2123ms4192 KiB
11Accepted2/2123ms4148 KiB
12Accepted2/2119ms4148 KiB
13Accepted2/2120ms4380 KiB
14Accepted2/2122ms4588 KiB
15Accepted2/285ms4148 KiB
16Accepted2/2123ms4148 KiB
17Accepted2/2123ms4404 KiB
18Accepted2/2122ms4404 KiB
19Accepted3/385ms4600 KiB
20Accepted3/386ms4600 KiB
21Accepted2/285ms4404 KiB
22Accepted2/2120ms4404 KiB
23Accepted2/2123ms4596 KiB
24Accepted2/276ms4596 KiB