Cod sursa(job #205560)

Utilizator Adriana_SAdriana Sperlea Adriana_S Data 1 septembrie 2008 20:40:42
Problema Hvrays Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

const int N_MAX = 200010;

pair <pair <int, int>, int> v[N_MAX];

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

	int T, H, V, x, y;

	for (scanf("%d\n",  &T); T; T --) {
		scanf("%d %d\n", &H, &V);

		for (int i = 1; i <= H; i ++) {
			scanf("%d %d\n", &x, &y);
			v[i] = make_pair(make_pair(x, y), 0);
		}
		for (int i = H + 1; i <= H + V; i ++) {
			scanf("%d %d\n", &x, &y);
			v[i] = make_pair(make_pair(x, y), 1);
		}
		int N = H + V;
		sort(v + 1, v + N + 1);

		int maxn = -1, maxb = -1, cate = 0;
		for (int i = 1; i <= N; i ++) {
			if (v[i].second) {
				if (v[i].first.second > maxn) maxn = v[i].first.second;
			} else {
				if (maxb < v[i].first.second) {
					cate ++;
					maxb = maxn;
				}
			}
		}
		printf("%d\n", cate);
	}	

	return 0;
}