Cod sursa(job #2007277)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 2 august 2017 13:44:14
Problema Hvrays Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int N_MAX = 200010;
pair <pair <int, int>, int> v[N_MAX];
int main()
{
    freopen("hvrays.in", "r", stdin);
    freopen("hvrays.out", "w", stdout);
    int T, H, V, x, y;
    for (scanf("%d\n",  &T); T; T --)
    {
        scanf("%d %d\n", &H, &V);
        for (int i = 1; i <= H; i ++)
        {
            scanf("%d %d\n", &x, &y);
            v[i] = make_pair(make_pair(x, y), 0);
        }
        for (int i = H + 1; i <= H + V; i ++)
        {
            scanf("%d %d\n", &x, &y);
            v[i] = make_pair(make_pair(x, y), 1);
        }
        int N = H + V;
        sort(v + 1, v + N + 1);
        reverse(v+1, v+N+1);
        int maxn = -1, maxb = -1, cate = 0;
        for (int i = 1; i <= N; i ++)
        {
            if (v[i].second)
            {
                if (v[i].first.second > maxn) maxn = v[i].first.second;
            } else {
                if (maxb < v[i].first.second)
                {
                    cate ++;
                    maxb = maxn;
                }
            }
        }
        printf("%d\n", cate);
    }
    return 0;
}