99552024-03-21 09:47:46VargusMekk Mester munkái (50 pont)cpp17Hibás válasz 2/5092ms10728 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#include <climits>
#define ll long long

using namespace std;

struct adat
{
	ll el, veg, poz;
};

vector <adat> x;

bool sorts(const adat& a, const adat& b)
{
	return a.veg < b.veg;
}

int main()
{
	ll n, h;
	cin >> n >> h;
	for (ll i = 1; i <= n; ++i)
	{
		ll a, b;
		cin >> a >> b;
		x.push_back({ a, b, i });
	}
	sort(x.begin(), x.end(), sorts);
	ll m1v = 0, m2v = 0, m1 = 0, m2 = 0, pe = INT_MAX;
	bool elso = false;
	deque <ll> p1, p2;
	for (ll i = 0; i < n; ++i)
	{
		if (m2v < x[i].el && x[i].veg <= h && x[i].poz < pe)
		{
			m2v = x[i].veg;
			++m2;
			p2.push_front(x[i].poz);
		}
		else if (m1v < x[i].el && x[i].veg <= h)
		{
			m1v = x[i].veg;
			++m1;
			p1.push_front(x[i].poz);
			if (!elso)
			{
				elso = true;
				pe = x[i].poz;
			}
		}
	}
	cout << m1 << " " << m2 << endl;
	for (ll i = p1.size() - 1; i >= 0; --i)
		cout << p1[i] << " ";
	cout << endl;
	for (ll i = p2.size() - 1; i >= 0; --i)
		cout << p2[i] << " ";

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/50
1Elfogadva0/03ms1816 KiB
2Hibás válasz0/09ms3084 KiB
3Hibás válasz0/13ms2280 KiB
4Hibás válasz0/13ms2488 KiB
5Hibás válasz0/23ms2648 KiB
6Hibás válasz0/23ms2764 KiB
7Elfogadva2/23ms2764 KiB
8Hibás válasz0/23ms2768 KiB
9Hibás válasz0/33ms2764 KiB
10Hibás válasz0/13ms3172 KiB
11Hibás válasz0/13ms3468 KiB
12Hibás válasz0/23ms3680 KiB
13Hibás válasz0/24ms3912 KiB
14Hibás válasz0/23ms4132 KiB
15Hibás válasz0/23ms3972 KiB
16Hibás válasz0/33ms4312 KiB
17Hibás válasz0/283ms10500 KiB
18Hibás válasz0/282ms10512 KiB
19Hibás válasz0/486ms10728 KiB
20Hibás válasz0/483ms10588 KiB
21Hibás válasz0/483ms10472 KiB
22Hibás válasz0/487ms10472 KiB
23Hibás válasz0/492ms10472 KiB