Pagini recente » Cod sursa (job #510694) | Cod sursa (job #1250790) | Cod sursa (job #2148493) | Cod sursa (job #615795) | Cod sursa (job #205523)
Cod sursa(job #205523)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
const int N_MAX = 200010;
pair <pair <int, int>, int> v[N_MAX];
int cmp(pair <pair <int, int>, int> a, pair <pair <int, int>, int> b)
{
if (a.first.first != b.first.first) return (a.first.first > b.first.first);
else return (a.second > b.second);
}
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, cmp);
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;
}