Cod sursa(job #129465)

Utilizator razvi9Jurca Razvan razvi9 Data 29 ianuarie 2008 15:48:15
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;

int n,H,V,t,i,X,Y,xv,x_last,nr;
vector< pair<int, pair<int,int> > > v;

#define x(i) (v[i].second.second)
#define y(i) (v[i].first)
#define d(i) (v[i].second.first)
#define oriz 0
#define vert 1

int main()
{freopen("hvrays.in","r",stdin);
 freopen("hvrays.out","w",stdout);
 scanf("%d",&t);
 while(t--){
	 scanf("%d %d",&H,&V);
	 n=H+V;
	 nr=0;
	 xv=x_last=-1;
	 v.clear();
	 for(i=1;i<=H;i++){
		 scanf("%d %d",&X,&Y);
		 v.push_back(make_pair(Y,make_pair(oriz,X)));}
	 for(i=1;i<=V;i++){
		 scanf("%d %d",&X,&Y);
		 v.push_back(make_pair(Y,make_pair(vert,X)));}
	 sort(v.begin(),v.end());
	 for(i=n-1;i>=0;i--)
		 if(d(i)==vert){
			 if(x(i)>xv)
				 xv=x(i);}
		 else{
			 if(x(i)>xv){
				 nr=0;
				 break;}
			 else 
				 if(x(i)>x_last){
					 nr++;
					 x_last=xv;}}
	 printf("%d\n",nr);}
 fclose(stdout);
 return 0;}