Cod sursa(job #90796)

Utilizator victorsbVictor Rusu victorsb Data 10 octombrie 2007 14:33:57
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define Nmax 200005
#define mp make_pair
#define x first.first
#define tip first.second
#define y second
#define ev pair<pair<int, int>, int>

int n;
ev sir[Nmax];

void citire()
{
	int i, h, v, x0, y0;

	n = 0;

	scanf("%d %d", &h, &v);

	for (i = 1; i <= h; ++i)
	{
		scanf("%d %d", &x0, &y0);
		sir[++n] = mp(mp(x0, 0), y0);
	}

	for (i = 1; i <= v; ++i)
	{
		scanf("%d %d", &x0, &y0);
		sir[++n] = mp(mp(x0, 1), y0);
	}
}

void solve()
{
	int i, sol = 0, h = -1, hm = - 1;

	sort(sir+1, sir+n+1);
    reverse(sir+1, sir+n+1);

	for (i = 1; i <= n; ++i)
	{
		if (sir[i].tip == 1)
			hm = max(hm, sir[i].y);
		else if (sir[i].y > h)
		{
			++sol;
			h = hm;
		}
	}

	printf("%d\n", sol);
}


int main()
{
	freopen("hvrays.in", "r", stdin);
	freopen("hvrays.out", "w", stdout);

	int i, t;
	scanf("%d", &t);

	for (i = 1; i <= t; ++i)
	{
		citire();
		solve();
	}

	return 0;
}