Cod sursa(job #93536)

Utilizator Binary_FireFlorin Pg Binary_Fire Data 19 octombrie 2007 00:30:11
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

#define fin  "hvrays.in"
#define fout "hvrays.out"

#define pb push_back
#define sz(c) (int)((c).size())

struct dot { int x,y,a; };

int ret;
vector <dot> v;

bool cmp(dot A,dot B)
{
	if ( A.y == B.y )
		return A.a > B.a;
	return A.y > B.y;
}

void solve()
{
	int i,dr,curr;

	curr=-1;
	dr=-1;

	for (i=0;i<sz(v);++i)
		if (v[i].a==0)
		{
			if (v[i].x > curr)
			{
				++ret;
				curr=dr;
			}
		}
		else
			dr=max(dr,v[i].x);
}

void readdata()
{
	int i,T,H,V;
	dot aux;

	freopen(fin,"r",stdin);
	freopen(fout,"w",stdout);

	scanf("%d",&T);

	while ( T -- )
	{
		v.clear();
		scanf("%d%d",&H,&V);
		aux.a=0;
		for (i=0;i<H;++i)
		{
			scanf("%d%d",&aux.x,&aux.y);
			v.pb(aux);
		}
		aux.a=1;
		for (i=0;i<V;++i)
		{
			scanf("%d%d",&aux.x,&aux.y);
			v.pb(aux);
		}
		sort(v.begin(),v.end(),cmp);
		ret=0;
		solve();
		printf("%d\n",ret);
	}
}

int main()
{
	readdata();
	return 0;
}