Pagini recente » Pregatire OJI pentru clasele XI-XII | Cod sursa (job #2434740) | Profil Robybrasov | Cod sursa (job #2752564) | Cod sursa (job #341756)
Cod sursa(job #341756)
#include <algorithm>
#include <stdio.h>
#define MAX 100010
#define x first
#define y second
using namespace std;
pair <int, int> hor[MAX], ver[MAX];
int t, h, v;
char buffIn[32];
inline bool cmp(const pair <int, int> &a, const pair <int, int> &b)
{
if (a.y == b.y)
return (a.x > b.x);
return (a.y > b.y);
}
int main()
{
freopen("hvrays.in", "r", stdin);
freopen("hvrays.out", "w", stdout);
for (scanf("%d\n", &t); t; t--)
{
scanf("%d %d\n", &h, &v);
for (int i = 1; i <= h; i++)
{
fgets(buffIn, 32, stdin);
sscanf(buffIn, "%d %d", &hor[i].x, &hor[i].y);
}
for (int i = 1; i <= v; i++)
{
fgets(buffIn, 32, stdin);
sscanf(buffIn, "%d %d", &ver[i].x, &ver[i].y);
}
sort(hor + 1, hor + 1 + h, cmp);
sort(ver + 1, ver + 1 + v, cmp);
int sel = 0, maxX = 0;
for (int rmh = 1, rmv = 1; rmh <= v; sel++)
{
int primGs = hor[rmh].y;
for (; rmv <= h && ver[rmv].y >= primGs; rmv++)
maxX = max(maxX, ver[rmv].x);
for (; rmh <= v && hor[rmh].x <= maxX; rmh++);
}
printf("%d\n", sel);
}
fclose(stdin);
fclose(stdout);
return 0;
}