Pagini recente » Cod sursa (job #2389675) | Cod sursa (job #1663175) | Cod sursa (job #3137263) | Cod sursa (job #228006) | Cod sursa (job #1492693)
#include<cstdio>
//#include<cstdlib>
#include<algorithm>
#define x first
#define y second
#define LMAX (1<<16)
using namespace std;
const int Nmax=100005;
pair <int,int> o[Nmax],v[Nmax];
int poz;
char buff[LMAX];
int get_nr()
{ int x=0;
while(buff[poz]<'0' || buff[poz]>'9')
if(++poz==LMAX) {fread(buff,1,LMAX,stdin); poz=0;}
while(buff[poz]>='0' && buff[poz]<='9')
{ x=x*10+buff[poz]-'0';
if (++poz==LMAX) {fread(buff,1,LMAX,stdin); poz=0;}
}
return x;
}
int main()
{ freopen("hvrays.in","r",stdin);
freopen("hvrays.out","w",stdout);
int n,m,i,cover,rez,t;
t=get_nr();
while(t--)
{ n=get_nr(); m=get_nr();
for(i=1;i<=n;++i) {o[i].y=get_nr(); o[i].x=get_nr();}
for(i=1;i<=m;++i) {v[i].y=get_nr(); v[i].x=get_nr();}
sort(o+1,o+n+1);
sort(v+1,v+m+1);
cover=-1; rez=0;
while(n)
{ if(o[n].y>cover)
{ ++rez;
while(m&&v[m].x>=o[n].x)
{ if(v[m].y>cover) cover=v[m].y;
--m;
}
}
n--;
}
printf("%d\n",rez);
}
return 0;
}