Cod sursa(job #1517654)

Utilizator EpictetStamatin Cristian Epictet Data 4 noiembrie 2015 17:58:08
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin ("hvrays.in");
ofstream fout ("hvrays.out");

char P[8200], *p;

void Verif()
{
    if (*p == '\0')
    {
        fin.get(P, 8192, '\0');
        p = P;
    }
}

void Get(int &nr)
{
    nr = 0;
    while (*p < '0' || *p > '9')
    {
        p ++;
        Verif();
    }
    while (*p >= '0' && *p <= '9')
    {
        nr = nr * 10 + *p - '0';
        p ++;
        Verif();
    }
}

int main()
{
    p = P;
    Verif();
    int t;
    pair < int, int > H[100010], V[100010];
    Get(t);
    while (t --)
    {
        int sol = 0, y = -1, n, m;
        Get(n); Get(m);
        for (int i = 1; i <= n; i ++) { Get(H[i].first); Get(H[i].second); }
        for (int i = 1; i <= m; i ++) { Get(V[i].first); Get(V[i].second); }

        sort (H + 1, H + 1 + n);
        sort (V + 1, V + 1 + m);

        for (int i = n, j = m; i >= 1; i --)
        {
            if (H[i].second <= y)
            {
                continue;
            }
            else
            {
                sol ++;
                y = -1;
                while (V[j].first >= H[i].first && j >= 1)
                {
                    y = max(y, V[j].second);
                    j --;
                }
            }
        }

        fout << sol << '\n';
    }

    return 0;
}