Cod sursa(job #482771)

Utilizator SpiderManSimoiu Robert SpiderMan Data 5 septembrie 2010 00:46:36
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
# include <algorithm>
# include <vector>
using namespace std ;

# define x first
# define y second
# define mp make_pair

const char FIN[] = "hvrays.in", FOU[] = "hvrays.out" ;
const int MAX = 200005, oo = 0x3f3f3f3f ;

pair < int, pair < int, int > > A[MAX] ;
int H, V, T ;

int main ( void ) {
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    for ( scanf ( "%d", &T ) ; T ; --T ) {
        scanf ( "%d %d", &H, &V ) ;

        for ( int i = 1, X, Y; i <= H; ++i ) {
            scanf ( "%d %d", &X, &Y ) ;
            A[i] = mp ( Y, mp ( 0, X ) ) ;
        }
        for ( int i = 1, X, Y; i <= V; ++i ) {
            scanf ( "%d %d", &X, &Y ) ;
            A[H + i] = mp ( Y, mp ( 1, X ) ) ;
        }
        sort ( A + 1, A + H + V + 1 ) ;
        int sol = 0 , maxH = -oo, maxV = -oo ;

        for ( int i = H + V ; i ; --i ) {
            if ( A[i].y.x ) {
                maxV = max ( maxV, A[i].y.y ) ;
            } else if ( maxH < A[i].y.y ) {
                ++sol ;
                maxH = maxV ;
            }
        }

        printf ( "%d\n", sol ) ;
    }

    return 0 ;
}