141732025-01-10 08:11:27RRoliInverziócpp17Wrong answer 36/50200ms4340 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> v(n), ind(n+1);
	for(int i = 0; i < n; i++) {
		cin >> v[i];
		ind[v[i]] = i+1;
	}

	int ln = v[0], lk = v[n-1], l = 0, r = n-1;
	bool valt = true;
	while(l <= r) {
		if(ln > lk) {
			cout << ind[ln] << ' ' << ind[lk];
			break;
		}
		if(v[l+1] > lk) {
			l++;
			ln = max(ln, v[l]);
		} else if(v[r-1] < ln) {
			r--;
			lk = min(lk, v[r]);
		} else if(v[l+1] > ln) {
			l++;
			ln = max(ln, v[l]);
		} else if(v[r-1] < lk) {
			r--;
			lk = min(lk, v[r]);
		} else if(v[l+1] > v[l]) {
			l++;
			ln = max(ln, v[l]);
		} else if(v[r-1] < v[r]) {
			r--;
			lk = min(lk, v[r]);
		} else if(valt) {
			l++;
			ln = max(ln, v[l]);
		} else {
			r--;
			lk = min(lk, v[r]);
		}
		valt = !valt;
	}
	if(l > r) cout << -1;

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base36/50
1Accepted0/01ms316 KiB
2Accepted0/017ms804 KiB
3Accepted1/11ms508 KiB
4Accepted2/21ms316 KiB
5Accepted7/71ms496 KiB
6Wrong answer0/217ms564 KiB
7Accepted2/2182ms4328 KiB
8Accepted2/2194ms4324 KiB
9Wrong answer0/2200ms4332 KiB
10Wrong answer0/2189ms4148 KiB
11Wrong answer0/2190ms4328 KiB
12Wrong answer0/2187ms4248 KiB
13Accepted2/2188ms4332 KiB
14Accepted2/2188ms4236 KiB
15Accepted2/2187ms4148 KiB
16Accepted2/2192ms4340 KiB
17Wrong answer0/2188ms4148 KiB
18Accepted2/2190ms4148 KiB
19Accepted3/3184ms4148 KiB
20Accepted3/3184ms4148 KiB
21Accepted2/2185ms4328 KiB
22Accepted2/2185ms4324 KiB
23Wrong answer0/2187ms4332 KiB
24Accepted2/2180ms4336 KiB