Cod sursa(job #2566475)

Utilizator victorzarzuZarzu Victor victorzarzu Data 2 martie 2020 21:37:58
Problema Tribute Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>
#define oo 50005
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int n, dx, dy, x, y, xmax, ymax, xmin = oo, ymin = oo;
int dsx[oo], ddx[oo], djy[oo], dsy[oo], fx[oo], fy[oo];

void Read()
{
    f>>n>>dx>>dy;
    for(int i = 1;i <= n;++i)
    {
        f>>x>>y;
        fx[x]++;
        fy[y]++;
    }
}

void Solve()
{
    int sumx, sumy;
    for(int j = 1;j <= 2;++j)
    {
        sumx = fx[0];
        sumy = fy[0];
        for(int i = 1;i < oo;++i)
        {
            dsx[i] = dsx[i - 1] + sumx;
            sumx += fx[i];

            djy[i] = djy[i - 1] + sumy;
            sumy += fy[i];
    }
    }
    sumx = fx[oo - 5];
    sumy = fy[oo - 5];
    for(int i = oo - 6;i >= 0;--i)
    {
        ddx[i] = ddx[i + 1] + sumx;
        sumx += fx[i];

        dsy[i] = dsy[i + 1] + sumy;
        sumy += fy[i];
    }

    for(int i = 0;i <= oo - 5 - dx;++i)
        {
            xmin = min(xmin, dsx[i] + ddx[i + dx]);
            ymin = min(ymin, djy[i] + dsy[i + dy]);
        }
    g<<xmin + ymin<<'\n';
    g.close();
}

int main()
{
    Read();
    Solve();
    return 0;
}