Cod sursa(job #1799057)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 5 noiembrie 2016 18:36:08
Problema Hvrays Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<bits/stdc++.h>
#define x first
#define y second
#define LMAX (1<<18)
using namespace std;
const int Nmax=100005;
pair <int,int> o[Nmax],v[Nmax];
int poz;
char buff[LMAX];
int get_nr()
{   int x=0;
    while(buff[poz]<'0' || buff[poz]>'9')
        if(++poz==LMAX) {fread(buff,1,LMAX,stdin); poz=0;}
    while(buff[poz]>='0' && buff[poz]<='9')
    {   x=x*10+buff[poz]-'0';
        if (++poz==LMAX) {fread(buff,1,LMAX,stdin); poz=0;}
    }
    return x;
}
int main()
{   freopen("hvrays.in","r",stdin);
    freopen("hvrays.out","w",stdout);
    int n,m,i,cover,rez,t;
    t=get_nr();
    while(t--)
    {   n=get_nr(); m=get_nr();
        for(i=1;i<=n;++i) o[i].y=get_nr(),o[i].x=get_nr();
        for(i=1;i<=m;++i) v[i].y=get_nr(),v[i].x=get_nr();
        sort(o+1,o+n+1);
        sort(v+1,v+m+1);
        cover=-1; rez=0;
        while(n)
        {   if(o[n].y>cover)
            {   ++rez;
                while(m&&v[m].x>=o[n].x)
                {   if(v[m].y>cover) cover=v[m].y;
                    --m;
                }
            }
            n--;
        }
         printf("%d\n",rez);
    }
    return 0;
}