Cod sursa(job #3193418)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 14 ianuarie 2024 15:47:05
Problema Ograzi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("ograzi.in");
ofstream fout ("ograzi.out");
int sol,dr,pct,x[50001],y[50001],n,m,i,a,b,l,c,nrc,lin,col;
long long poz,poz1,poz2,poz3,poz4;
unordered_map <long long,int> fr;
bool f (int poz)
{
    lin=x[poz];
    col=y[poz];
    if (a>=lin&&a<=lin+l-1&&b>=col&&b<=col+c-1)
        return 1;
    else
        return 0;
}
int main()
{
    fin>>dr>>pct>>l>>c;
    for (i=1; i<=dr; i++)
    {
        fin>>x[i]>>y[i];
        n=max (n,x[i]);
        m=max (m,y[i]);
    }
    l++;
    c++;
    nrc=n/l+1;
    for (i=1; i<=dr; i++)
    {
        poz=1ll*y[i]/c*nrc+x[i]/l;
        fr[poz]=i;
    }
    for (i=1; i<=pct; i++)
    {
        fin>>a>>b;
        poz1=1ll*b/c*nrc+a/l;
        poz2=poz1-1;
        poz3=poz1-nrc;
        poz4=poz3-1;
        sol+=f (fr[poz1])||f (fr[poz2])||f (fr[poz3])||f (fr[poz4]);
    }
    fout<<sol;
    return 0;
}