5072 2023. 04. 14 11:55:45 czita Legmesszebbi rossz sorrendű (35 pont) cpp17 Hibás válasz 4/35 57ms 7164 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> E,R,K;
int logker(int a)
{
	int e = 0, v = R.size() - 1,fele;
	bool talalt = false;
	while (!talalt&&e<=v)
	{
		fele = (e + v) / 2;
		if (a==R[fele])
		{
			return fele;
		}
		else if (a > R[fele])
		{
			e = fele + 1;
		}
		else
		{
			v = fele - 1;
		}
	}
	return -1;
}
/*
10
7 2 4 17 6 5 10 10 18 19
*/
int main()
{
	int n;
	cin >> n;
	
	int a;
	for (size_t i = 0; i < n; i++)
	{
		cin >> a;
		E.push_back(a);
		R.push_back(a);
	}
	sort(R.begin(),R.end());
	for (size_t i = 0; i < n; i++)
	{
		K.push_back(i - logker(E[i]));
	}
	int minn = 0,maxx=0;
	for (size_t i = 0; i < n; i++)
	{
		if (K[i]<K[minn])
		{
			minn = i;
		}
		if (K[i] > K[maxx])
		{
			maxx = i;
		}
	}
	if (K[minn]>0&&K[maxx]>0)
	{
		cout << -1 << endl;
	}
	else
	{
		int elso = 0;
		while (K[elso]!=K[minn])
		{
			elso++;
		}
		int utolso = n - 1;
		while (K[utolso] != K[maxx])
		{
			utolso--;
		}
		cout << elso+1 << " " << utolso + 1 << endl;
	}
}

Részfeladat Összpont Teszt Verdikt Idő Memória
base 4/35
1 Elfogadva 0/0 3ms 1872 KiB
2 Hibás válasz 0/0 57ms 5380 KiB
3 Hibás válasz 0/1 3ms 2540 KiB
4 Elfogadva 1/1 2ms 2628 KiB
5 Hibás válasz 0/1 2ms 2744 KiB
6 Elfogadva 1/1 2ms 2892 KiB
7 Hibás válasz 0/1 3ms 3084 KiB
8 Hibás válasz 0/1 3ms 3320 KiB
9 Hibás válasz 0/1 3ms 3416 KiB
10 Hibás válasz 0/1 4ms 3336 KiB
11 Hibás válasz 0/1 4ms 3588 KiB
12 Hibás válasz 0/2 21ms 4916 KiB
13 Hibás válasz 0/2 24ms 5064 KiB
14 Hibás válasz 0/2 26ms 4952 KiB
15 Hibás válasz 0/2 17ms 4616 KiB
16 Hibás válasz 0/2 27ms 5068 KiB
17 Hibás válasz 0/2 41ms 6216 KiB
18 Hibás válasz 0/2 46ms 6408 KiB
19 Hibás válasz 0/2 52ms 6932 KiB
20 Hibás válasz 0/2 52ms 7024 KiB
21 Hibás válasz 0/2 57ms 7140 KiB
22 Hibás válasz 0/2 57ms 7020 KiB
23 Elfogadva 2/2 45ms 6912 KiB
24 Hibás válasz 0/2 45ms 7164 KiB